错误示例:
原因分析:
核心就是“权限不允许”造成的为题,但奇葩的是:
可以看到我已经给admin赋全部路径的权限了:
也设置了对应的admin用户:
登录之后仍然还是403error!
解决方法(核心错误的原因是权限分配顺序出错):
在Spring Security中,授权规则是按照声明的顺序进行匹配的。一旦找到第一个匹配的规则,就不会继续检查后面的规则。因此,规则的顺序非常重要。
"/**"
匹配所有路径,这个规则会匹配几乎所有请求,包括 /pages1/**
和 /pages2/**
,并且它需要用户具有 admin
角色。然而,在匹配到 "/**"
之前,/pages1/**
和 /pages2/**
已经被 hasRole("left_author")