Shiro 之 SecurityUtils 报错

版权声明:本文为博主原创文章,未经博主允许不得转载。 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 就好了。

猜你喜欢

转载自blog.csdn.net/weixin_40116945/article/details/85245265