Создать URL-адрес страницы настроек пользователя keycloak

Я знаю, что страница настроек пользователя:

https://DOMAIN:PORT/auth/realms/REALM/account/?referrer=APPLICATION

Можно ли каким-либо образом сгенерировать этот URL-адрес на сервлете без жесткого кодирования сервера DOMAIN и других параметров (получение этих параметров из keycloak.json или с сервера приложений с помощью любого предоставленного API)?


person user1079877    schedule 07.03.2015    source источник


Ответы (1)


Этого можно добиться, получив Keycloak AdapterDeploymentContext из ServletContext:

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>
person gkephorus    schedule 22.04.2015