配置问题
1.在配置中把csrf关了,不关的话,loginProcessingUrl指定的url总是报错403,且不会跳转defaultSuccessUrl指定的url
2.把frameOptions关了,不然一些界面中的子界面frame不能正常显示
http
//关闭csrf防护
.csrf().disable()
.headers()
.frameOptions().disable()
3.忽略静态资源的拦截
@Override
public void configure(WebSecurity web) throws Exception {
//用来忽略URL地址,被忽略的URL不会被Security拦截,一般项目中的静态文件需要忽略。
web.ignoring().antMatchers("/js/**","/css/**","/images/**","/layui/**","/lib/**","/api/**","/webjars/**","/error/**");
}
4.指定登录界面的form表单url和logoutSuccessUrl指定的url一致,不自定义这个url跳转逻辑的话,正常会走spring security默认的鉴权逻辑
.formLogin()
.loginPage("/loginPage")
.loginProcessingUrl("/custom-authenticate")
.failureHandler(loginFailureHandler)
.successHandler(loginSuccessHandler)
.defaultSuccessUrl("/main",true).permitAll()
// 注:form表单跳转的url名为"/custom-authenticate"
5.successHandler和successForwardUrl不能同时设置,同时设置的话会走successForwardUrl,然后给前端的response是视图解析器的内容
.successHandler(loginSuccessHandler)
// .successForwardUrl("/main").permitAll()
// .defaultSuccessUrl("/main",true).permitAll()