经过1周的源码研究,终于对shiro的原理有了深刻的理解,基于原理我们识别出生产环境落地这个技术的设计复杂度
shiro落地的设计复杂度:
(1)自定义CachingSessionDAO,这是核心,因为它存储了session,Principals,AuthenticationState等所有可以持久化的数据。
(2)sessionid无状态化设计:我们就可以通过继承DefaultWebSessionManager,自定义getSessionId逻辑实现无状态的会话,而不需要依赖cookie来获取session.,此方案登陆成功后必须把sessionID传给客户端。
(3)登陆成功后最好初始化session:
Session session = subject.getSession();//初始化会话
//下一步最好按照一定的规则存用户的session和相关数据到数据仓库中(比如redis),以备以后使用
(4)其他:shiro扩展:自定义AuthorizingRealm,SessionFactory,SimpleSession,过滤器,SessionListenerAdapter等等,这些都是基本操作,不重要,初级水平的开发都能理解。
(5)典型应用:单点登陆(登陆认证、登出,验证token)--特殊的认证,
单点登陆增加的设计复杂度:
-->增加登陆界面
-->登陆成功,跨域重定向(cors方案即可)
(6)备选方案1:spring security
(7)备选方案2:自己实现3类接口即可,不需要什么鬼框架,增加学习成本。。
-->用户登陆认证接口
-->用户权限查询和校验接口 (结合自定义注解+自定义过滤器实现权限过滤)
-->session的保存,更新,删除接口
分享到:
相关推荐
shiro权限框架数据库设计,附少量数据,仅供测试,非实际项目
shiro教程shiro教程shiro教程shiro教程shiro教程shiro教程shiro教程shiro教程
Shiro 权限框架使用总结,shiro入门级的文档资料。
shiro个人总结ppt
NULL 博文链接:https://yuhuiblog695685688425687986842568269.iteye.com/blog/2434891
本资源提供了一套基于Spring4和Struts2的简单Shiro项目设计源码。该项目包含了11个XML配置文件、9个Java源文件、4个JSP文件、1个LICENSE文件、1个Markdown文件、1个META-INF文件、1个SQL文件、1个XSD文件,共29个...
shiro权限demo
第一讲了解shiro(什么是shiro、shiro的结构体系、核心功能、shiro的架构、shiro的工作流程、RBAC模型),第二讲 用户认证和授权(demo练习),第三讲 JdbcRealm及认证策略,第四讲 与Web集成(shiro+SpringMVC),...
shiro版本时,其参数remeberMe存在硬编码,它对于cookie的处理流程是,首先获取rememberMe的cookie值,然后进行Base64解码,再进行AES解密,最后反序列化。但在这个过程中,其AES的Key硬编码,导致反序列化漏洞的...
此科研管理系统是一款基于互联网的应用,其更容易... 该项目用到的技术有ssh+shiro+mysql+easyUI,下载含项目源码和毕业设计论文。本套框架分为三套运行环境:dev 代表开发环境,test代表测试环境,prod代表生产环境。
shiro框架的一些总结.XMind
shiro shiro-core-1.7.1 jar shiro漏洞
shiro框架总结1
1. 了解基于资源的权限管理方式 2. 权限数据模型 3. 基于url的权限管理(不适应shiro实现权限管理) 4. Shiro实现用户认证 5. Shiro实现用户授权 6. Shiro与企业web整合开发方法
shiro入门 安全校验
shiro(shiro-all-1.8.0.jar)
shiro最简单整合版本shiro最简单整合版本shiro最简单整合版本shiro最简单整合版本shiro最简单整合版本
Shiro_学习总结
尚硅谷_Shiro_源码、课件 · 01.尚硅谷_Shiro_简介 · 02.尚硅谷_Shiro_HelloWorld · 03.尚硅谷_Shiro_集成 Spring · 04.尚硅谷_Shiro_工作流程(1) · 05.尚硅谷_Shiro_DelegatingFilterProxy · 06. 尚硅谷...