apache-shiro / 1.5.3 / reference / session-management-features.html

Apache Shiro 会话 Management 功能

Share |

会话是用户在使用应用程序时一段时间内随身携带的数据桶。传统上,会话是 Web 或 EJB 环境专有的。不再! Shiro 启用 任何应用程序环境的会话 。此外,Shiro 还提供了许多其他出色的功能来帮助您 Management 会话。

Features

  • 基于 POJO/J2SE(对 IoC 友好) -Shiro 中的所有内容(包括会话和会话 Management 的所有方面)都是基于接口的,并通过 POJO 实现。这使您可以轻松地使用与 JavaBeans 兼容的任何配置格式来配置所有会话组件,例如 JSON,YAML,Spring XML 或类似机制。您还可以轻松扩展 Shiro 的组件或根据需要编写自己的组件,以完全自定义会话 Management 功能。

  • 会话存储 -由于 Shiro 的 Session 对象基于 POJO,因此可以轻松地将会话数据存储在任意数量的数据源中。这使您可以精确地自定义应用程序的会话数据所在的位置,例如文件系统,企业缓存,关系数据库或专有数据存储。

  • 轻松强大的群集功能 -Shiro 的会话可以使用任何易于使用的网络缓存产品轻松群集,例如 Ehcache,Coherence,GigaSpaces 等。等这意味着您只能为 Shiro 配置一次会话群集,并且无论部署到哪个 Web 容器,会话都将以相同的方式群集。无需特定于容器的配置!

  • 异构 Client 端访问 -与 EJB 或 Web 会话不同,可以在各种 Client 端技术之间“共享” Shiro 会话。例如,桌面应用程序可以“查看”和“共享”服务器端 Web 应用程序中同一用户使用的同一物理会话。除了 Shiro 之外,我们没有其他可以支持此功能的框架。

  • 事件监听器 -事件监听器可让您在会话的生存期内监听生命周期事件。您可以侦听这些事件并对它们做出反应,以实现自定义应用程序的行为-例如,在会话期满时更新用户记录。

  • 主机地址保留 – Shiro 会话保留从其发起会话的主机的 IP 地址。这使您能够确定用户所在的位置并做出相应的反应(在 IP 关联是确定性的 Intranet 环境中最有用)。

  • 不活动/到期支持 –会话由于不活动而到期,如预期的那样,但是可以通过touch()方法延长会话的时间,以保持它们“活动”。这在 Rich Internet Application(RIA)环境中非常有用,在该环境中,用户可能正在使用桌面应用程序,但可能不会与服务器定期进行通信,但是服务器会话不应过期。

  • 透明的网络使用 -Shiro 的网络支持实现HttpSession接口及其所有关联的 API。这意味着您可以在现有的 Web 应用程序中使用 Shiro 会话,而无需更改任何现有的 Web 代码。

  • 可用于 SSO -由于 Shiro 会话基于 POJO,因此可以轻松地存储在任何数据源中,并且可以根据需要在应用程序之间“共享”它们。由于共享的会话可以保留身份验证状态,因此可以用来提供简单的登录体验。

使用 Shiro 在 10 分钟内入门

通过我们的10 分钟教程自己尝试 Shiro。如果您对 Shiro 有任何疑问,请查看我们的community forum用户邮件列表以获取社区的答案。