Обработка отмены пользователя в пользовательском Keycloak SPI Authenticator - PullRequest
0 голосов
/ 06 ноября 2018

Мне нужно обработать отмену пользователя в пользовательском Keycloak SPI Authenticator. Я реализовал это, и он отлично работает. Все, что мне нужно, это отменить поток входа в систему и начать с самого начала, когда пользователь нажал "Отмена"

    @Override
    public void action(AuthenticationFlowContext context) {
        logger.debug("action called ... context = " + context);
        String cancel = context.getHttpRequest().getDecodedFormParameters().getFirst("cancel");
        if (cancel != null) {
            context.cancelLogin();
            context.resetFlow();
            return;
        }
// OK handling...
}

В моем случае я получаю страницу входа, но с неправильным URL:

http://localhost:8080/auth/realms/realm1/login-actions/authenticate?execution=bb1fb7c3-0b59-4a07-b997-b619c6f9ea2a&client_id=realm1-client&tab_id=YJxYk7osJaU

вместо URL, подобного этому, когда я впервые захожу на защищенную страницу:

http://localhost:8080/auth/realms/realm1/protocol/openid-connect/auth?response_type=code&client_id=realm1-client&redirect_uri=http%3A%2F%2Flocalhost%3A8081%2Fsso%2Flogin&state=2cc038b9-2c69-4648-ac39-e5864bc05ee9&login=true&scope=openid

1 Ответ

0 голосов
/ 13 ноября 2018

Ах, все, что мне нужно, это оставить только строку (или поставить последнюю перед возвращением):

context.cancelLogin();

В моем пользовательском приложении мне нужно обработать конечную точку с параметрами, куда KK перенаправит меня

/sso/login?error=access_denied&state=923e5b18-1d8e-4c96-9fed-c1dd122065bb
...