Apache Shiro Web应用会话管理
来源:互联网 发布:洛克希德马丁 知乎 编辑:程序博客网 时间:2024/06/05 21:04
Servlet容器会话管理
在Web环境中,Shiro默认的会话管理器SessionManager 的实现是ServletContainerSessionManager。这个实现只是简单的封装了Servlet容器,包括会话集群功能。它的本质是Shiro Session API与Servlet容器之间的一个桥梁。
使用这个默认实现的好处是,应用程序将使用现有的servlet容器的会话配置,例如超时,基于特定容器的集群机制等。缺点是你的应用程序依赖于特定servlet容器的会话处理将不适合移植。
如果使用缺省的servlet容器配置,在Web.xml文件里可配置Session超时。例如:
<session-config>
<!-- web.xml expects the session timeout in minutes: -->
<session-timeout>30</session-timeout>
</session-config>
本地会话管理
如果你想要特定的会话管理/集群功能,并且可以在不同的servlet容器移植。你可以Shiro本地的会话管理。“本地”的意思是Shiro自己实现的企业级会话管理支持所有的Subject和HttpServletRequest会话。但请放心,Shiro实现的会话管理符合servlet规范,现有的Web/HTTP相关代码不需要修改。
如想使用Shiro本地的会话管理,需要在shiro.ini进行配置:
[main]
...
sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager
# configure properties (like session timeout) here if desired
# Use the configured native session manager:
securityManager.sessionManager = $sessionManager
一旦声明,你就可以配置DefaultWebSessionManager的实例,配置方法可参考“会话管理”部分中所描述的集群配置与本地会话选项。
比如,session超时设置:
[main]
...
# 3,600,000 milliseconds = 1 hour
securityManager.sessionManager.globalSessionTimeout = 3600000
DefaultWebSessionManager支持两种配置特性的Session Cookie:
l sessionIdCookieEnabled (a boolean)
l sessionIdCookie, a Cookie instance.
DefaultWebSessionManager的sessionIdCookie缺省实例是SimpleCookie。这个实现符合JavaBeans风格的属性配置,可以让所有相关的属性配置成一个Http Cookie。例如,你可以设置Cookie域:
[main]
...
securityManager.sessionManager.sessionIdCookie.domain = foo.com
Cookie的默认名称是JSESSIONID。此外,Shiro的cookie支持HttpOnly flag。
如果你不想使用会话cookie,你可以将sessionIdCookieEnabled的属性设置为false。例如:
[main]
...
securityManager.sessionManager.sessionIdCookieEnabled = false
- Apache Shiro Web应用会话管理
- Apache Shiro 会话管理
- Apache Shiro Web应用过滤器
- Apache Shiro 会话集群
- Apache-Shiro+Zookeeper系统集群安全解决方案之会话管理
- Shiro会话管理
- shiro 会话管理
- Shiro(2) 会话管理
- Shiro(三) 会话管理
- Apache Shiro在Web中的应用
- Apache Shiro Web应用整合-配置
- Apache Shiro Web应用整合-标签库
- 在 Web 项目中应用 Apache Shiro
- 在 Web 项目中应用 Apache Shiro
- Apache Shiro在Web中的应用
- 在 Web 项目中应用 Apache Shiro
- 在 Web 项目中应用 Apache Shiro
- Apache Shiro Web应用整合-标签库
- Linux驱动编写(入门)
- SqlServer2005 中表的递归查询
- java-String中的 intern方法
- PHP函数的实现原理及性能分析
- Web的脆弱性:各种注入、攻击
- Apache Shiro Web应用会话管理
- 我是如何让女友学会用Ubuntu的
- 关于SQLserver2000移植到oracle9i的实践(原)
- Java中多个线程按顺序执行
- 使用 /sys 文件系统访问 Linux 内核
- 修改一个oracle序列的当前值
- QQweb登录通讯协议
- 看到一篇文章讲ios的动画, 比较齐全,转过来, UIViewAnimation动画与CATransition类动画
- HEVC学习(三十四) —— 去方块滤波之五