Keycloak и JBoss: редактировать расположение конфигурационного файла keycloak.json - PullRequest
0 голосов
/ 19 июня 2019

Я использую JBoss EAP 6.2, JavaEE 6.0 и keycloak-eap6-adapter-dist 6.0.1 для аутентификации на Keycloak.

В настоящее время keycloak.json упакован в развернутый военный архив (под WEB).-INF), поэтому он не является взаимозаменяемым для каждого клиента.

Знаете ли вы, как изменить путь keycloak.json на внешний путь, чтобы сделать его взаимозаменяемым для каждой установки / этапа (например, с помощью Docker)?


Решение: Благодаря ravthiru мы внедрили специальный преобразователь конфигурации следующим образом:

public class CustomKeycloakResolver implements KeycloakConfigResolver {

    private KeycloakDeployment deployment;

    @Override
    public KeycloakDeployment resolve(OIDCHttpFacade.Request request) {
        if (deployment != null) {
            return deployment;
        }

        InputStream is;
        try {
            is = new FileInputStream(System.getenv("KEYCLOAK_CONFIG_FILE"));
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        }
        deployment = KeycloakDeploymentBuilder.build(is);
        return deployment;
    }
}

и зарегистрировали его в WEB-INF/web.xml следующим образом:

<context-param>
    <param-name>keycloak.config.resolver</param-name>
    <param-value>my.package.CustomKeycloakResolver</param-value>
</context-param>

Теперь вы можете указать путь непосредственно с помощью переменной среды в вашем Docker-контейнере.

1 Ответ

1 голос
/ 19 июня 2019

Один из вариантов - динамическое разрешение конфигурации keycloak с использованием keycloak.config.resolver context-param в вашем web.xml Вы можете найти больше об этой конфигурации в keycloak document и в примере реализации здесь

...