生成 keycloak 用户设置页面 URL
Generate keycloak user setting page URL
我知道用户设置页面是:
https://DOMAIN:PORT/auth/realms/REALM/account/?referrer=APPLICATION
是否可以在没有硬编码服务器 DOMAIN 和其他参数的 servlet 上生成此 URL(通过任何提供的 [=19= 从 keycloak.json 或应用程序服务器获取这些参数])?
这可以通过从 ServletContext 获取 Keycloak AdapterDeploymentContext 来实现:
AdapterDeploymentContext deploymentContext = (AdapterDeploymentContext) getServletContext().getAttribute(AdapterDeploymentContext.class.getName());
KeycloakDeployment deployment = deploymentContext.resolveDeployment(null);
然后可以查询部署以获得 getAuthServerBaseUrl() 和 getRealm()。我让它在 TomEE 1.7.1 中工作(又名 Tomcat 7 和 1.1.0-Final of Keycloak)我相信它也会在 Java-EE Wildfly 中工作。
为此,您需要 Maven 提供这些工件:
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-core</artifactId>
<version>1.1.0.Final</version>
<scope>provided</scope>
</dependency>
我知道用户设置页面是:
https://DOMAIN:PORT/auth/realms/REALM/account/?referrer=APPLICATION
是否可以在没有硬编码服务器 DOMAIN 和其他参数的 servlet 上生成此 URL(通过任何提供的 [=19= 从 keycloak.json 或应用程序服务器获取这些参数])?
这可以通过从 ServletContext 获取 Keycloak AdapterDeploymentContext 来实现:
AdapterDeploymentContext deploymentContext = (AdapterDeploymentContext) getServletContext().getAttribute(AdapterDeploymentContext.class.getName());
KeycloakDeployment deployment = deploymentContext.resolveDeployment(null);
然后可以查询部署以获得 getAuthServerBaseUrl() 和 getRealm()。我让它在 TomEE 1.7.1 中工作(又名 Tomcat 7 和 1.1.0-Final of Keycloak)我相信它也会在 Java-EE Wildfly 中工作。
为此,您需要 Maven 提供这些工件:
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-core</artifactId>
<version>1.1.0.Final</version>
<scope>provided</scope>
</dependency>