会话管理 Session

会话管理 Session

1.概述

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

2.API

Session session = SecurityUtils.getSubject().getSession();
  • 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():获取会话的启动时间以及最后访问时间,如果是javaee因公应用需要自己定期调用session.touch()去更新最后访问时间,如果是web应用,每次进入shiroFilter都会自动调用session.touch()来更新最后的范文时间。
  • session.touch() & session.stop():更新会话最后访问时间和销毁会话;当调用subject.logout()会自动调用stop方法来销毁会话。如果在web总调用HttpSession.invalidate()也会自动调用Shiro Session.stop方法来进行销毁Shiro的会话
  • sessoin.setAttribute( key .value) & session.getAttribute(key) & session.removeAttribute(key):属性操作

3.会话的监听器

SessionListener: 用户监听会话会话创建 过期 和停止事件

  • onStart(Session)
  • onStop(Session)
  • onExpiration(Session)

你可能感兴趣的:(框架-shiro)