背景
针对用户身份权限管理包含账户权限登录认证+会话保持两个部分,在 移动端+服务平台 或 前后端分离 的项目框架下,一般会涉及到通过token来进行用户登录会话的保持。
以下我将通过在HTTP Header中增加token的方式在RestfulApi的服务端进行权限校验与会话保持。
扩展分析
- 扩展
org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO
: 完成用户Session的存取。 - 扩展
org.apache.shiro.web.session.mgt.DefaultWebSessionManager
: 完成用户Session标识的获取。
源码
org.wujianjun.apps.web.auth.TokenSessionManager
1 | public class TokenSessionManager extends DefaultWebSessionManager { |
org.wujianjun.apps.web.auth.RedisSessionDAO
1 |
|
spring-shiro.xml
1 | <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager" p:realm-ref="authorRealm"> |
SessoinId扩展
如果需要自己定义sessionId的生成,只需要给 org.apache.shiro.session.mgt.eis.AbstractSessionDAO 设置sessionIdGenerator
的属性值即可。
1 | <bean class="org.wujianjun.apps.web.auth.RedisSessionDAO"> |
观点仅代表自己,期待你的留言。