Выход из Spring Spring Security не работает с аутентификацией httpBasic

1

Я использую базовую аутентификацию для обеспечения начального веб-сервиса REST, над которым я работаю. Кажется, все работает нормально, за исключением того, что путь выхода из системы не работает. Он перенаправляется на "/login? Logout", как задокументировано, но мой пользователь, похоже, фактически не вышел из системы. (т.е. я все равно могу получить доступ к странице X, а не странице Y, как ожидалось).

Конфигурация приложения:

@Configuration
@ComponentScan
@EnableAutoConfiguration(exclude = ManagementSecurityAutoConfiguration.class)
@EnableWebSecurity
@EnableSwagger
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
    @Configuration
    protected static class ApplicationSecurity extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.httpBasic()
            .and().authorizeRequests().antMatchers("/manage/**").hasRole("ADMIN")
            .anyRequest().fullyAuthenticated()
            .and().logout().permitAll().logoutRequestMatcher(new AntPathRequestMatcher("/logout", HttpMethod.GET.toString())).invalidateHttpSession(true);
        }

        @Override
        protected void configure(AuthenticationManagerBuilder auth) throws Exception {
            auth.inMemoryAuthentication().withUser("admin").password("admin").roles("ADMIN", "USER").and().withUser("user").password("user").roles("USER");
        }
    }
}

Обратите внимание, что безопасность в целом, похоже, работает. Я могу открыть новую вкладку инкогнито, и проверка подлинности/безопасности будет работать, как ожидалось.

  • 1
    Вы тестируете с помощью браузера? Вы уверены, что это не кэширование учетных данных и их повторное использование «за вашей спиной»? Вы должны проверить запрос / ответ туда и обратно, чтобы убедиться.
  • 0
    Я не думаю, что это происходит. Я отключил кэширование в данный момент, и в журналах кажется, что сеанс даже очищался при доступе к защищенному пути «USER»: 2014-08-07 16:58:36.931 INFO 2132 --- [nio-8080-exec-2] osbaaudit.listener.AuditListener : AuditEvent [timestamp=Thu Aug 07 16:58:36 EDT 2014, principal=user, type=AUTHENTICATION_SUCCESS, data={details=org.springframework.security.web.authentication.WebAuthenticationDetails@957e: RemoteIpAddress: 127.0.0.1; SessionId: null}]
Показать ещё 3 комментария
Теги:
spring-boot
spring-security
spring

1 ответ

0
Лучший ответ

Вы не можете выйти из базовой HTTP-аутентификации с помощью ссылки выхода.

Пожалуйста, проверьте аналогичную тему здесь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню