diff --git a/src/App.vue b/src/App.vue index d05a079..3122449 100644 --- a/src/App.vue +++ b/src/App.vue @@ -18,6 +18,10 @@ async function doAuthenticatedRequest() { const response = await authServer.get('/oidc-test-web') } +function getResourceUrl(url: string): string { + return settings.resourceServerUrl + "/" + url +} + function logout() { keycloak.logoutFn && keycloak.logoutFn() } @@ -34,7 +38,10 @@ async function get_resource(id: string) { msg.value = "" } ).catch( - err => msg.value = err + err => { + resource.value = [] + msg.value = `${err.message} (${err.response.statusText}): ${err.response.data["detail"]}` + } ) } @@ -84,7 +91,24 @@ async function get_resource(id: string) { -
{{ msg }}
+
{{ msg }}
+
+

+ These links should get different response codes depending on the authorization: +

+ +

@@ -98,14 +122,14 @@ async function get_resource(id: string) {

access token

-
{{ key }}
+
{{ key }}
{{ value }}

refresh token

-
{{ key }}
+
{{ key }}
{{ value }}
diff --git a/src/main.ts b/src/main.ts index 427388e..b771875 100644 --- a/src/main.ts +++ b/src/main.ts @@ -44,6 +44,7 @@ axios.get("settings.json").then().then( }, onReady(keycloak: Keycloak) { initializeTokenInterceptor(keycloak) + checkPerms('links-to-check') }, }) app.mount("#app") @@ -72,4 +73,25 @@ function initializeTokenInterceptor(keycloak: Keycloak) { }) } +async function checkHref(elem: HTMLLinkElement) { + await resourceServer.get(elem.href).then( + resp => { + elem.classList.add("hasResponseStatus") + elem.classList.add("status-" + resp.status) + elem.title = "Response code: " + resp.status + " - " + resp.statusText + }).catch(err => { + elem.classList.add("hasResponseStatus") + elem.classList.add("status-" + err.response.status) + elem.title = "Response code: " + err.response.status + " - " + err.response.statusText + }) +} + +function checkPerms(className: string) { + var rootElems = document.getElementsByClassName(className) + Array.from(rootElems).forEach(elem => + Array.from(elem.children).forEach(elem => checkHref(elem)) + ) +} + + const app = createApp(App)