Spring Web Security注销不使用httpBasic身份验证

时间:2014-08-07 20:49:20

标签: java spring spring-security spring-boot

我使用基本身份验证来保护我正在处理的初始REST Web服务。除了注销路径似乎不起作用外,所有似乎都能正常工作。它会重定向到" / 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 :(得分:1)

您无法使用注销链接从基本的http身份验证注销。

请检查类似的帖子here