Spring Security 3.2.0RC2注销网址仅限POST?

NA.*_*NA. 5 spring-security

我正在使用javaconfig试验Spring Security 3.2.0.RC2,看来注销网址只是POST.这是设计,是否有任何方法可以使用GET请求注销用户?

protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
        .antMatchers("/resources/**", "/signup", "/about", "/password").permitAll()                  
        .antMatchers("/admin/**").hasRole("ADMIN")
            .anyRequest().authenticated().and()
        .formLogin()
            .loginPage("/login")
            .permitAll();        
}
Run Code Online (Sandbox Code Playgroud)

Rob*_*nch 15

这是有意的,并在CSRF文档中记录.原因是防止强制将用户从应用程序中注销的CSRF攻击.如果您想支持非POST请求,可以使用以下Java配置来执行此操作:

protected void configure(HttpSecurity http) throws Exception {
  http
    // ...
    .logout()
       .logoutRequestMatcher(new AntPathRequestMatcher("/logout"));
}
Run Code Online (Sandbox Code Playgroud)

您还可以在LogoutConfigurerJavadoc上找到有关配置注销的信息(即http.logout()方法返回的对象).

  • 没问题......对自己公平,我确实在看到问题后用如何支持非POST注销的示例更新了文档(尽管包括javadoc示例在内的其余部分以前就在那里) (2认同)