CSRF Token ‘null‘ 报错解决方案
Spring Security CSRF,默认是开启。CSRF默认支持的方法: GET|HEAD|TRACE|OPTIONS,不支持POST。
1关闭方案
@Configuration @EnableWebMvcSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter{ @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication().withUser("test").password("test").roles("USER"). and().withUser("admin").password("admin").roles("USER","ADMIN"); } @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests().antMatchers("/spittles/register").access("isAuthenticated()") .antMatchers("/spittles/register").access("isAuthenticated()") .antMatchers("/home").access("isAuthenticated()") .antMatchers("/spittles/toUpload").access("isAuthenticated()") .anyRequest().permitAll() .and().formLogin() .and().httpBasic(); http.csrf().disable();//关闭CSRF } }
2.配置控制
当然,也可以将excluded配置为/*来规避所有url,达到和关闭一样的效果。
spring.security.csrf.supportedMethods=POST,PUT,GET,DELETE,OPTIONS spring.security.csrf.url.style=regex spring.security.csrf.url.included=/.*? spring.security.csrf.url.excluded=^/csrf/nocheck,/test/