ユーザー設定ページは次のとおりです。
https://DOMAIN:PORT/auth/realms/REALM/account/?referrer=APPLICATION
サーバー DOMAIN とその他のパラメーターをハードコーディングせずにサーブレットでこの URL を生成する方法はありますか (提供された API によって keycloak.json またはアプリケーション サーバーからこれらのパラメーターを取得します)。
ユーザー設定ページは次のとおりです。
https://DOMAIN:PORT/auth/realms/REALM/account/?referrer=APPLICATION
サーバー DOMAIN とその他のパラメーターをハードコーディングせずにサーブレットでこの URL を生成する方法はありますか (提供された API によって keycloak.json またはアプリケーション サーバーからこれらのパラメーターを取得します)。
これは、ServletContext から Keycloak AdapterDeploymentContext を取得することで実現できます。
AdapterDeploymentContext deploymentContext = (AdapterDeploymentContext) getServletContext().getAttribute(AdapterDeploymentContext.class.getName());
KeycloakDeployment deployment = deploymentContext.resolveDeployment(null);
その後、デプロイメントに対して getAuthServerBaseUrl() および getRealm() を照会できます。私はこれを TomEE 1.7.1 (別名、Keycloak の 1.1.0-Final を備えた Tomcat 7) で動作させました。Java-EE Wildfly でも動作すると確信しています。
このためには、これらのアーティファクトを maven で提供する必要があります。
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-core</artifactId>
<version>1.1.0.Final</version>
<scope>provided</scope>
</dependency>