shiro 小问题,记录一下

org.apache.shiro.UnavailableSecurityManagerException: No SecurityManager accessible to the calling code.

这个问题本身看起来很复杂,我刚遇到的时候也是一脸茫然。之前的项目shiro用的好好的,可以新复制出来后,再稍做修改,就报错!

问题入口

Subject subject = SecurityUtils.getSubject();

通过断点定位到问题在这,只要一进入SecurityUtils就会报如上错误,作为一个初学者不会思考太多,既然之前的几个项目都可以,为什么这个就不行.

我的项目都是springboot框架,启动类在启动的时候会去扫描添加 @Configuration的类,但是问题也就出在这里,因为启动的时候没有初始化shiro,所以才会出现上面的错误

在网上浪费了三个多小时也没说明白到底怎么回事,什么去掉proxy,一点用也没有,最终还是在启动类中声明了@ComponentScan(basePackages = {"com.XXX})把shiro文件放进去,

最后才正常运行,百度出来的垃圾内容太多,所以就在这里记录一下,希望正在踩坑的同学早点脱离苦海!

原文地址:https://www.cnblogs.com/duzjextjs/p/10097198.html