版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_40116945/article/details/85245265
问题起源:
最近在往公司现有的项目中添加 Shiro 框架, 配置都是 CV 过来的. 导致点击登录时, SecurityManager 不能正确调用
原因:
shiro 在运行时, 是先在 web 中找到 shiroFilter, 然后再去找里面的具体的配置, 我的是跟 spring 结合的, 所以里面的配置文件是 applicationContext-shiro.xml 文件, 里面配置了 SecurityManager, 后台代码是通过 SecurityUtils.getSubject(); 获取的当前的 Subject, 所以是 SecurityUtils 报错了.
解决办法:
我的项目是与 struts 框架的, 所以把 strutsFilter 放在 shiroFilter 的后面就可以了.
总结:
是因为 web.xml 里面的代码是由上而下执行的, 所以你的路径是由 struts 来完成的, 而后面的 shiroFilter 不起作用了,所以你先执行 shiroFilter 就好了。
扫描二维码关注公众号,回复:
4642469 查看本文章