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是一个强大的Java安全框架,它为应用程序提供了身份验证、授权、会话管理和加密等功能。这个教程将帮助你深入理解和有效地使用Shiro框架。在本文中,我们将详细探讨Shiro的核心概念、主要功能和常见用法...
Apache Shiro 是一个强大且易用的Java安全框架,提供了认证、授权、加密和会话管理功能,简化了企业级应用的安全实现。Shiro 1.13.0 是其一个重要的版本,包含了多项更新和改进。在这个版本中,开发者可以深入理解其...
### Apache Shiro:全方位守护应用安全 #### 一、Apache Shiro概述 **Apache Shiro**(发音为“shee-roh”,意为日语中的“堡垒”)是一款功能强大且易于使用的Java安全框架,旨在为各类应用提供全面的安全保障。...
- **Web 应用**:Shiro 可以为 Web 应用提供强大的认证和授权功能,同时支持会话管理和跨域资源共享等功能。 - **桌面应用**:对于桌面应用而言,Shiro 提供了一套完整的安全解决方案,帮助开发者轻松实现用户管理和...
Shiro的设计理念是简单而强大,旨在为Java应用程序提供一个易于理解和使用的安全框架,用于实现认证、授权、加密和会话管理等功能。Shiro不仅支持传统的Web应用,还适用于无界面的控制台应用和移动应用,甚至可以...
- **定义**:Apache Shiro 是一款强大且灵活的开源安全框架,它致力于简化应用程序的安全性问题,包括身份验证(Authentication)、授权(Authorization)、会话管理(Session Management)以及加密(Cryptography)...
Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。 使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。
Shiro的会话管理功能使得在Web和非Web环境下都能轻松管理用户会话。它支持会话缓存,提高了性能,且能处理跨域会话共享的问题。对于加密需求,Shiro提供了简单的加密API,方便开发者对敏感数据进行加密保护。 总的...
Apache Shiro 是一个强大且易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可以非常轻松地开发出足够安全的应用。Shiro 不仅可以用于Java Web 应用,也可以用于独立的Java应用。在集成Spring时,Shiro ...
Apache Shiro是一个全面的Java安全框架,用于处理应用程序的安全需求,包括身份验证、授权、密码管理和会话管理。它的核心功能之一是“RememberMe”服务,该服务允许用户在关闭浏览器后仍然保持登录状态,无需在下次...
Apache Shiro是一款轻量级的安全框架,用于处理身份认证、授权、会话管理和加密。在Spring MVC应用中,Shiro可以轻松地集成,提供用户登录、权限控制等功能。例如,它可以验证用户凭证,确保只有授权的用户才能访问...
Apache Shiro 是一个强大且易用的Java安全框架,它提供了认证、授权、加密和会话管理功能,简化了企业级应用的安全实现。本实例将深入探讨 Apache Shiro 的核心概念和常见用法。 1. **认证**:Shiro 提供了用户身份...
Apache Shiro是一个强大且易用的安全管理框架,用于身份验证、授权、会话管理和加密。在仓库管理系统中,Shiro可以实现用户登录验证、角色权限分配、访问控制等功能,确保只有经过认证和授权的用户才能访问特定的...
Apache Shiro 是一个强大且易用的 Java 安全框架,它提供了认证、授权、加密和会话管理功能,可以非常方便地为应用程序提供安全保障。本文档合集包含了多个 PDF 文件,全面覆盖了 Apache Shiro 的核心概念和使用方法...
总之,整合Apache Oltu和Apache Shiro创建的轻量级OAUTH2应用框架,为Web应用和移动设备的安全提供了坚实的基础。通过合理的配置和扩展,开发者可以轻松地实现身份验证、授权和OAuth2的无缝集成,提高应用的安全性。
Apache Shiro 是一个强大且易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可以非常轻松地开发出足够安全的应用。张开涛的《跟我学Shiro》是一本深入浅出的教程,旨在帮助读者快速掌握Shiro的核心概念...
4. **Apache Shiro**: Apache Shiro是一个强大且易用的Java安全框架,负责身份验证、授权(访问控制)、加密以及会话管理。在这个系统中,Shiro用于处理用户的登录、权限分配、会话管理等安全相关的任务,确保只有...
3. 会话管理(Session Management):Shiro不仅支持Web应用中的会话管理,也能在无Web环境(如桌面应用)中管理用户会话。Shiro的Session API可以让用户在各种应用环境下使用会话功能。 4. 加密(Cryptography):...
Shiro提供了内置的会话管理功能,可以统一管理Web和非Web应用的会话。可以通过`sessionManager`配置项设置会话超时、存储方式(内存、Redis等)。 **6. 缓存(Caching)** 为了提高性能,Shiro支持缓存用户认证和...
Apache Shiro 是一个强大且易用的...然而,实际项目中可能需要考虑更多细节,如会话管理、缓存策略、Web 应用的集成等。Shiro 提供了丰富的 API 和扩展点,可以根据项目需求进行定制和扩展,以满足各种复杂的安全场景。