shiro落地的设计复杂度(最后总结)

经过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的保存,更新,删除接口
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值