记一次spring security403错误:{“timestamp“:“2022-06-30 14:05:32“,“status“:403,“error“:“Forbidden“,“mess...
记一次spring security403错误:{"timestamp":"2022-06-30 14:05:32","status":403,"error":"Forbidden","mess...
·
错误描述:
用PostMan第一次访问登录接口【加入了白名单】正常,再点击登录,报403错误
错误如下:
{
"timestamp": "2022-06-29 11:20:48+08:00",
"status": 403,
"error": "Forbidden",
"message": "",
"path": "/api/login.json"
}
看下spring security的核心配置代码:
protected void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity
// CSRF禁用
.csrf().disable()
// 对于登录login 注册register 允许匿名访问
.antMatchers("/**/login.json", "/register").anonymous()
.anyRequest().authenticated();
}
错误原因:
.antMatchers("/**/login.json", "/register").anonymous()
1、anonymous是匿名访问
2、spring security对匿名访问的定义可能很神奇,你没登录前,访问白名单接口,这个时候你是没有身份认证的,也就是匿名,当你登录认证后,再次访问这类接口,这个时候你是有身份的,不再是匿名,配置的白名单是给匿名用户访问的,所有导致403错误!~~~~晕
解决办法:
把anonymous【匿名】替换成permitAll【任何人都可以访问】即可
protected void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity
// CSRF禁用
.csrf().disable()
// 对于登录login 注册register 允许任何人都能直接访问
.antMatchers("/**/login.json", "/register").permitAll()
.anyRequest().authenticated();
}
更多推荐
已为社区贡献6条内容
所有评论(0)