Адаптер keycloak spring-security: antMatchers ("/ **"). Authenticated () не запускает процесс аутентификации - PullRequest
0 голосов
/ 01 ноября 2019

Я использую Spring-Security 5.2 и в конфигурации я пишу следующее http.csrf().disable().authorizeRequests() .antMatchers("/login*", "/js/**", "/css/**", "/vendors/**", "/images/**").permitAll() .antMatchers("/**").authenticated();

URL-адрес приложения похож на http://localhost:8080/myApp Проблема заключается в том, когда я вызываю URL-адрес приложения записи аутентификацииточка не вызывается.

Только когда я изменяю последнюю строку на что-то вроде .antMatchers ("/ main *"). authenticated ();и затем позвоните http://localhost:8080/myApp/main все работает.

Я настраиваю SSO-сервер Keycloak (7.0.1) +, используя адаптер безопасности Keycloak Spring. Поэтому мне было интересно, почему точка входа Keycloak не вызывается в случае .antMatchers ("/ **"). Authenticated () и вызывается, только если я написал что-то вроде .antMatchers ("/ main *"). Authenticated ().

Может кто-нибудь объяснить, что не так в моем исходном коде?

Спасибо

1 Ответ

1 голос
/ 01 ноября 2019

Ваш весенний класс конфигурации безопасности расширяет KeycloakWebSecurityConfigurerAdapter, и вы вызываете super.configure (http)? Если да, то вы входите на страницу не / login, а / sso / login. Страница успешного выхода из системы отображается в /. Когда отображается страница успеха при выходе из системы, Spring автоматически устанавливает для нее безопасность allowAll. Таким образом, вы можете попытаться изменить страницу успеха выхода на другой URL, чтобы проверить, решит ли она вашу проблему. Что-то вроде

    http.csrf().disable().authorizeRequests()
    .antMatchers("/js/**", "/css/**", "/vendors/**", "/images/**").permitAll()
    .antMatchers("/**").authenticated()
    .anyRequest().permitAll()
    .and().logout().logoutSuccessUrl("/loggedout");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...