问一下只想用shiro控制权限,不做登录验证,能实现么

来源:3-12 Apache Shiro权限管理框架总结

yinhaonefu

2018-09-20

公司已经有统一的单点登录系统,我只是想使用登录后的用户名,通过shiro来控制自己应用的权限,但是看视频shiro的工作流程都是先登录,后校验权限。怎么能绕过登录这步,subject还可以是当前登录的用户呢?springboot整合shiro中,我每次直接checkRole的时候都提示未登录或没有principal,怎么能把这个用户名传给shiro呢?非常感谢

写回答

1回答

Jimin

2018-09-20

你好,你如果使用shiro肯定是要按照shiro的要求来的,至少会话管理是要交给他的,使用框架都有这个问题,你必须按照他的要求他才能生效。
对于shiro而言,核心要让他知道你登录然后才能判断当前用户是否有权限。shiro里本身提供了session、sessionDao、sessionManager等,也支持扩展完成单点登录,如果不是以这个为基础做的单点登录,调整起来也会很麻烦,毕竟集群环境下不能每台服务器处理请求都要login一下。
当然你可以不使用login方法做实际登录校验,可以在成功后单独掉一下shiro的login方法来让shiro对会话进行管理,但那样就是两套会话管理了,完全可以换成shiro自己的。
总之,你如果使用shiro,建议还是按照shiro的要求来,简单也节省资源,你自己实现的也不一定有shiro实现的好,该有的他都有了。

1
2
Jimin
回复
yinhaonefu
哈哈哈,我也感觉后面的原生实现更好一些,容易扩展,容易配合现有业务
2018-09-20
共2条回复

Java开发企业级权限管理系统

源于企业真实Java项目,涉及大量高级技巧,覆盖权限管理开发技术

2264 学习 · 1347 问题

查看课程