我使用spring-boot和spring-security来构建项目,使用自定义登录页面404次错误,我想做的是分离登录页面和项目,并验证使用Ajax URL发送的用户信息登录页面,但总是错误403,我更改了spring boot安全配置的配置信息,但没有特定的效果。以下代码:
@Override
public void configure(HttpSecurity http) throws Exception{
http.authorizeRequests()
.anyRequest().authenticated()
.antMatchers("/index.html").permitAll()
.and()
.formLogin().usernameParameter("username")
.passwordParameter("password")
.loginProcessingUrl("/login")
.loginPage("/login")
.failureUrl("/login?error")
.permitAll()
.and()
.logout().permitAll();
}
发送帖子网址:localhost:8888 / login
params:用户名,密码
回复:403
错误消息:
此应用程序没有/ error的显式映射,因此您将此视为后备
出现意外错误(type = Forbidden,status = 403)
未找到预期的csrf令牌。您的会话是否已过期?
答案 0 :(得分:0)
您必须配置post以包含Spring Security中的csrf令牌。您必须在POST请求中设置标头参数“X-CSRF-TOKEN”。 POST请求示例:
$.ajax({
type: "POST",
beforeSend: function (request)
{
request.setRequestHeader("X-CSRF-TOKEN", "${_csrf.token}");
},
///...
});