加入收藏 | 设为首页 | 会员中心 | 我要投稿 网站开发网_盐城站长网 (https://www.0515zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

shiro会话管理示例代码

发布时间:2020-12-24 08:15:59 所属栏目:创业 来源:网络整理
导读:副标题#e# Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管JavaSE还是JavaEE环境都可以使用,提供了会话管理、会话事件监听、会话存储/持久化、容器无关的集群、失效/过期支持、对Web的透明支持、SSO单点登录的支持等特性

Java代码  

public class MySessionListener2 extends SessionListenerAdapter { 
 @Override 
 public void onStart(Session session) { 
  System.out.println("会话创建:" + session.getId()); 
 } 
} 

在shiro-web.ini配置文件中可以进行如下配置设置会话监听器:

Java代码 

sessionListener1=com.github.zhangkaitao.shiro.chapter10.web.listener.MySessionListener1 
sessionListener2=com.github.zhangkaitao.shiro.chapter10.web.listener.MySessionListener2 
sessionManager.sessionListeners=$sessionListener1,$sessionListener2 

会话存储/持久化 

Shiro提供SessionDAO用于会话的CRUD,即DAO(Data Access Object)模式实现:

Java代码 

//如DefaultSessionManager在创建完session后会调用该方法;如保存到关系数据库/文件系统/NoSQL数据库;即可以实现会话的持久化;返回会话ID;主要此处返回的ID.equals(session.getId()); 
Serializable create(Session session); 
//根据会话ID获取会话 
Session readSession(Serializable sessionId) throws UnknownSessionException; 
//更新会话;如更新会话最后访问时间/停止会话/设置超时时间/设置移除属性等会调用 
void update(Session session) throws UnknownSessionException; 
//删除会话;当会话过期/会话停止(如用户退出时)会调用 
void delete(Session session); 
//获取当前所有活跃用户,如果用户量多此方法影响性能 
Collection<Session> getActiveSessions(); 

Shiro内嵌了如下SessionDAO实现:

shiro会话管理示例代码

(编辑:网站开发网_盐城站长网 )

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读