shiro会话管理

Shiro会话管理

1).Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管JavaSE还是JavaEE环境都可以用,提供了会话管理,会话事件监听,会话存储/持久化,容器无关的集群,失效/过期支持,对web的透明支持,SSO单点登录的支持等特性。

2).Shiro中的session的API中的方法跟HttpSession类似,以下是Shiro会话的API

1).Subject.getSession() : 即可获取会话;其等价于Subject.getSession(true),如果当前没有创建Session对象会创建一个;Subject.getSession(false),如果没有创建Session则返回null

2).session.getId() : 获取当前会话的唯一标识

3).session.getTimeout() & session.getTimeout(毫秒):获取/设置当前session的过期时间

4).session.getStartTimestamp() &  session.getLastTimestamp() : 获取会话的启动时间及最后访问时间;如果是JavaSE应用需要自己定期调用session.touch()去更新最后访问时间;如果是web应用,每次进入ShiroFilter都会自动调用session.touch()来 更新最后访问时间

5).session.touch() & session.stop() : 更新会话最后访问时间及销毁会话;当Subject.logout()时会自动调用stop方法来销毁会话。如果在web中,调用HttpSession.invalidate()也会自动调用Shiro Session.stop方法进行销毁Shiro的会话

6).session.setAttribute(key,val) & session.getAttribute(key) & session.reomveAttribute(key):设置/获取/删除会话属性;在这个范围内都可以对这个属性进行操作

7).会话监听器:会话监听器用于监听会话的创建,过期及停止事件

SessionDao(可以把session写到数据库中,对session进行增删查改操作)

1).AbstractSessionDAO 提供了 SessionDAO 的基础实现,如生成会话id等
2).CachingSessionDAO 提供了对开发者透明的会话缓存功能,需要设置相应的CacheManager
3).MemorySessionDAO 直接在内存中进行会话维护

4).EnterpriseCacheSessionDAO 提供了缓存功能的会话维护,默认情况下使用MapCache实现,内部使用ConcurrentHashMap保存缓存的会话。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值