设置/获取/删除会话属性;在整个会话范围内都可以对这些属性进行操作。
Shiro提供的会话可以用于JavaSE/JavaEE环境,不依赖于任何底层容器,可以独立使用,是完整的会话模块。
会话管理器
会话管理器管理着应用中所有Subject的会话的创建、维护、删除、失效、验证等工作。是Shiro的核心组件,顶层组件SecurityManager直接继承了SessionManager,且提供了SessionsSecurityManager实现直接把会话管理委托给相应的SessionManager,DefaultSecurityManager及
DefaultWebSecurityManager默认SecurityManager都继承了SessionsSecurityManager。
SecurityManager提供了如下接口:
Java代码
| Session start(SessionContext context); //启动会话 Session getSession(SessionKey key) throws SessionException; //根据会话Key获取会话 |
另外用于Web环境的WebSessionManager又提供了如下接口:
Java代码
| boolean isServletContainerSessions();//是否使用Servlet容器的会话 |
Shiro还提供了ValidatingSessionManager用于验资并过期会话:
Java代码
| void validateSessions();//验证所有会话是否过期 |

Shiro提供了三个默认实现:
DefaultSessionManager:DefaultSecurityManager使用的默认实现,用于JavaSE环境;
ServletContainerSessionManager:DefaultWebSecurityManager使用的默认实现,用于Web环境,其直接使用Servlet容器的会话;
DefaultWebSessionManager:用于Web环境的实现,可以替代ServletContainerSessionManager,自己维护着会话,直接废弃了Servlet容器的会话管理。
替换SecurityManager默认的SessionManager可以在ini中配置(shiro.ini):
Java代码
| [main] sessionManager=org.apache.shiro.session.mgt.DefaultSessionManager securityManager.sessionManager=$sessionManager |
Web环境下的ini配置(shiro-web.ini):
<!--EndFragment-->
Java代码








