0
点赞
收藏
分享

微信扫一扫

2020-09-01 关于shiro的org.apache.shiro.UnavailableSecurityManagerException No SecurityManager异常

孟祥忠诗歌 2022-03-31 阅读 63
java后端

本地环境运行无异常,移植后出现异常。

1,查看异常代码

org.apache.shiro.UnavailableSecurityManagerException: No SecurityManager accessible to the calling code, either bound to the org.apache.shiro.util.ThreadContext or as a vm static singleton. This is an invalid application configuration.
at org.apache.shiro.SecurityUtils.getSecurityManager(SecurityUtils.java:123)
at org.apache.shiro.subject.Subject$Builder.(Subject.java:626)
at org.apache.shiro.SecurityUtils.getSubject(SecurityUtils.java:56)
at org.apache.shiro.web.filter.AccessControlFilter.getSubject(AccessControlFilter.java:97)

这里可以看出是getSubject出现异常。

2,debug断点测试

打断点以后发现

从ThreadContext中获取的为null,

3,查看chain-filters

发现自定义的filter在shirofilter之前加载了 ,所以在getSecurityManager时shiroFilter还未加载,为什么会优先加载自定义的filter,因为容器再加载filter时先加载spring自身管理的filter,自定义filter上我使用了@Component注解,是交给spring管理的。

4,解决办法

shiro有自定义的shiroFilter过滤器链,我们只需要把自定义的filter加入到shiroFilter中即可,即我们吧自定义filter交给shiro管理。

举报

相关推荐

shiro常见的异常以及处理方法

0 条评论