Keycloak: сеанс выхода из системы отозвать автономный токен - PullRequest
0 голосов
/ 20 февраля 2020

Я использую Keycloak 4.8.3 в приложении весенней загрузки с KeycloakWebSecurityConfigurerAdapter.

Я пытаюсь использовать автономный токен refre sh для использования этого токена после выхода из сеанса, но когда я вызываю URL выхода из системы (поскольку мой клиент находится на моем сервере), KeycloakLogoutHandler использует мой автономный токен refre sh для вызова Keycloak, а мой автономный токен отзывается.

В документации по Keycloak автономный токен может использовать после выхода из сеанса, но я нахожу проблему с Keycloak , и адаптер вызывает LogoutEndpoint, где тип токена проверяется и отзывается, потому что тип моего токена отключен.

Моя конфигурация безопасности Spring выглядит следующим образом:

public class SpringSecurityConfig extends KeycloakSecurityAdapter
{
...
@Override
    protected void configure(HttpSecurity http) throws Exception
    {
        super.configure(http);

        RequestMatcher requestMatcher = new RequestMatcher()
        {
            @Override
            public boolean matches(HttpServletRequest request)
            {
                if(csrfMatcher.matches(request))
                {
                    return true;
                }
                return false;
            }
        };

        http
            .csrf()
            .csrfTokenRepository(csrfTokenRepository())
            .requireCsrfProtectionMatcher(requestMatcher)
            .and()
            .authorizeRequests()
            .antMatchers("/actuator/**").permitAll()
            .antMatchers("/landing").permitAll()
            .antMatchers("/about-cookie", "/browsernotsupported").permitAll()
            .antMatchers("/webview").permitAll()
            .antMatchers("/*", "/**").hasRole("USER")
            .and()
            .logout()
            .logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
            .logoutSuccessUrl("/");

        http
            .headers()
            .frameOptions().sameOrigin().httpStrictTransportSecurity().disable();
    }
...
}

Я действительно задаюсь вопросом о полезности такого токена (в автономном режиме) ...

Должен ли быть определен мой KeycloakLogoutHandler? Должна ли стандартная работа адаптера отзывать токен?

...