最近在做 ssm 项目的时候用到 spring security 时遇到了异常,如下所示:
网上查阅了很多资料,出现这种异常主要有以下几种原因:
情况一
用户已经登录成功,但是该用户的权限不能够操作受限制的页面
我看了我的配置文件,发现出现的错误并不是该原因:
其中
表示只要是登录成功的都可以访问 pages 下的页面,但是我登录了却还是报错
情况二:
网上的观点:
情况三:
我的分析:
这个异常在 spring security 中通常都是指登录的用户没有权限访问请求的资源。但是我看了配置文件是正常配置了访问权限的。之后我又看了打印的日志信息:
我的异常出现之前都会有这个日志,我的猜想是无论我登录了怎样的用户,被授予的权限都是 ROLE_ANONYMOUS (表示匿名用户)
所以导致我无权访问被保护的页面。
解决方案
已解决
我的错误:禁用了网站的 cookie
允许 cookie 即可
参考文章:
Spring Security 出现问题:Access is denied 及我的解决方案
User Granted Authorities are always : ROLE_ANONYMOUS?
登录不跳转 RemoteIpAddress: 127.0.0.1; SessionId: null; Granted Authorities: ROLE_ANONYMOUS