我正在使用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(); }
Rob Winch.. 15
这是有意的,并在CSRF文档中记录.原因是防止强制将用户从应用程序中注销的CSRF攻击.如果您想支持非POST请求,可以使用以下Java配置来执行此操作:
protected void configure(HttpSecurity http) throws Exception { http // ... .logout() .logoutRequestMatcher(new AntPathRequestMatcher("/logout")); }
您还可以在LogoutConfigurer的Javadoc上找到有关配置注销的信息(即http.logout()
方法返回的对象).
这是有意的,并在CSRF文档中记录.原因是防止强制将用户从应用程序中注销的CSRF攻击.如果您想支持非POST请求,可以使用以下Java配置来执行此操作:
protected void configure(HttpSecurity http) throws Exception { http // ... .logout() .logoutRequestMatcher(new AntPathRequestMatcher("/logout")); }
您还可以在LogoutConfigurer的Javadoc上找到有关配置注销的信息(即http.logout()
方法返回的对象).