会话管理

会话

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

会话api

  • Subject.getSession():即可获取会话,等价于Subject.getSession(true),即如果当前没有创建Session对象会创建一个;Subject.getSession(false),如果当前没有创建Session则返回null
  • session.getId():获取当前会话的唯一标识
  • session.getHost():获取当前Subject的主机地址
  • session.getTimeout() & session.setTimeout(毫秒):获取/设置当前session的过期时间
  • session.getStartTimestamp() & session.getLastAccessTime():获取会话的启动时间及最后访问时间;如果是javaSE应用需要自己定期调用sesion.touch()去更新最后访问的时间,如果是web应用,每次进入ShiroFilter都去自动调用session.touch()来更新最后访问时间
  • Session.touch() & session.stop():更新会话最后访问时间及销毁会话,当Subject.logout()是自动调用stop方法来销毁会话,如果在web中,调用HttpSession.invalidate()也会自动调用ShiroSession.stop()方法进行销毁Shiro的会话
  • Sesssion.setAttribute(key, val) & session.getAttribute(key) & session.removeAttribute(key):设置/获取/删除会话属性,在整个会话范围内都可以对这些属性进行操作

会话监听器

会话监听器用于监听会话创建、过期以及停止事件

SessionDao

SessionDao用于将Session写到数据库里面,然后对Session进行增删改查

 

posted @ 2018-12-12 11:40  Jin同学  阅读(146)  评论(0)    收藏  举报