在安全框领域,ApacheShiro提供了一个独一无二的东西:一个完整的企业级Session解决方案,从最简单的命令行及智能手机应用到最大的集群企业Web应用程序。如果你需要session支持,你可以使用Shiro的Session支持,比Web容器或使用EJB有状态会话Bean这两种机制的使用和管理更为简单。
下面是Shiro对Session支持的一些特点:
1) POJO/J2SEbased(IoCfriendly)-Shiro的一切(包括所有Session和SessionManagement方面)都是基于接口和POJO实现。这可以让你轻松地配置所有拥有任何JavaBeans兼容配置格式(如JSON,YAML,SpringXML或类似的机制)的会话组件。你也可以轻松地扩展Shiro的组件或编写你自己所需的来完全自定义sessionmanagement。
2) EasyCustomSessionStorage-因为Shiro的Session对象是基于POJO的,会话数据可以很容易地存储在任意数量的数据源。这允许你自定义你的应用程序会话数据的确切位置——例如,文件系统,联网的分布式缓存,关系数据库,或专有的数据存储。
3) Container-IndependentClustering!-Shiro的会话可以很容易地聚集通过使用任何随手可用的网络缓存产品,像Ehcache+Terracotta,Coherence,GigaSpaces,等等。这意味着你可以为Shiro配置会话群集一次且仅一次,无论你部署到什么容器中,你的会话将以相同的方式聚集。不需要容器的具体配置!
4) HeterogeneousClientAccess-与EJB或web会话不同,Shiro会话可以被各种客户端技术“共享”。例如,一个桌面应用程序可以“看到”和“共享”同一个被使用的物理会话通过在Web应用程序中的同一用户。我们不知道除了Shiro以外的其他框架能够支持这一点。
5) EventListeners-事件监听器允许你在会话生命周期监听生命周期事件。你可以侦听这些事件和对自定义应用程序的行为作出反应——例如,更新用户记录当他们的会话过期时。
6) HostAddressRetention-ShiroSessions从会话发起地方保留IP地址或主机名。这允许你确定用户所在,并作出相应的反应(通常是在IP分配确定的企业内部网络环境)。
7) Inactivity/ExpirationSupport-由于不活动导致会话过期,如果你希望的话,它们可以通过touch()方法来保持它们“活着”。这在RIA(富互联网应用)环境非常有用,用户可能会使用桌面应用程序,但可能不会经常与服务器进行通信,但该服务器的会话不应过期。
8) TransparentWebUse-Shiro的网络支持,充分地实现和支持关于Sessions(HttpSession接口和它的所有相关的API)的Servlet2.5规范.这意味着你可以使用在现有Web应用程序中使用Shiro会话,并且你不需要改变任何现有的Web代码。
9) CanbeusedforSSO-由于Shiro会话是基于POJO的,它们可以很容易地存储在任何数据源,而且它们可以跨程序“共享”。我们称之为"poorman'sSSO",并且它可以用来提供简单的登录体验,由于共享的会话能够保留身份验证状态。
在Shiro中使用Session非常简单,可以通过与当前执行的Subject交互来获取Session。例如:
SubjectcurrentUser=SecurityUtils.getSubject();
Sessionsession=currentUser.getSession();
session.setAttribute("someKey",someValue);
|
对于那些熟悉HttpServletRequestAPI的人,Subject.getSession(booleancreate)方法与HttpServletRequest.getSession(booleancreate)方法有着异曲同工之效。
l如果该Subject已经拥有一个Session,则boolean参数被忽略且Session被立即返回。
l如果该Subject还没有一个Session且create参数为true,则创建一个新的会话并返回该会话。
l如果该Subject还没有一个Session且create参数为false,则不会创建新的会话且返回null。
l 当你获取了一个Subject的Session后,你可以用它来做许多事情,像设置或取得attribute,设置其超时时间,等等。
分享到:
相关推荐
Apache Shiro是一个强大的Java安全框架,它为应用程序提供了身份验证、授权、会话管理和加密等功能。这个教程将帮助你深入理解和有效地使用Shiro框架。在本文中,我们将详细探讨Shiro的核心概念、主要功能和常见用法...
Apache Shiro 是一个强大且易用的Java安全框架,提供了认证、授权、加密和会话管理功能,简化了企业级应用的安全实现。Shiro 1.13.0 是其一个重要的版本,包含了多项更新和改进。在这个版本中,开发者可以深入理解其...
Apache Shiro是一个强大且易用的Java安全框架,它提供了身份验证、授权、加密和会话管理等功能。本文将深入探讨如何使用Apache Shiro管理用户权限,并与数据库进行交互,以便实现动态、灵活的安全策略。 ### 一、...
Apache Shiro是一个全面的Java安全框架,用于处理应用程序的安全需求,包括身份验证、授权、密码管理和会话管理。它的核心功能之一是“RememberMe”服务,该服务允许用户在关闭浏览器后仍然保持登录状态,无需在下次...
Apache Shiro 是一款功能强大且易于使用的 Java 安全框架,它提供了多种安全相关的功能和服务,包括但不限于认证、授权、加密和会话管理。相较于其他安全框架,Shiro 在设计上更为简洁明了,便于开发者的理解和使用...
- **定义**:Apache Shiro 是一款强大且灵活的开源安全框架,它致力于简化应用程序的安全性问题,包括身份验证(Authentication)、授权(Authorization)、会话管理(Session Management)以及加密(Cryptography)...
Apache Shiro 是一款强大的 Java 安全框架,它集成了认证、授权、加密和会话管理等功能。这些功能使得 Shiro 成为了一个全面的安全解决方案,适用于各种类型的应用程序。 - **认证**:是指确认用户的身份,通常指的...
Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。 使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。
Apache Shiro是一个强大且易用的安全管理框架,用于身份验证、授权、会话管理和加密。在仓库管理系统中,Shiro可以实现用户登录验证、角色权限分配、访问控制等功能,确保只有经过认证和授权的用户才能访问特定的...
4. **会话管理(Session Management)**:管理和维护每个用户相关的临时状态信息。 除了这些核心功能外,Shiro还支持一系列辅助特性,例如: - **Web应用安全**:为Web应用提供额外的安全层,包括但不限于URL级别...
Apache Shiro 是一个强大且易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可以非常轻松地开发出足够安全的应用。Shiro 不仅可以用于Java Web 应用,也可以用于独立的Java应用。在集成Spring时,Shiro ...
Apache Shiro是一款轻量级的安全框架,用于处理身份认证、授权、会话管理和加密。在Spring MVC应用中,Shiro可以轻松地集成,提供用户登录、权限控制等功能。例如,它可以验证用户凭证,确保只有授权的用户才能访问...
Apache Shiro 是一个强大且易用的Java安全框架,它提供了认证、授权、加密和会话管理功能,简化了企业级应用的安全实现。本实例将深入探讨 Apache Shiro 的核心概念和常见用法。 1. **认证**:Shiro 提供了用户身份...
4. **Apache Shiro**: Apache Shiro是一个强大且易用的Java安全框架,负责身份验证、授权(访问控制)、加密以及会话管理。在这个系统中,Shiro用于处理用户的登录、权限分配、会话管理等安全相关的任务,确保只有...
4. **会话管理(Session Management)**:Shiro的会话管理功能可以处理用户的会话状态,包括会话的创建、维护和销毁。它支持多种会话存储方式,如内存、数据库、缓存等,使得开发者可以根据应用需求选择最合适的会话...
Apache Shiro 是一个强大且易用的 Java 安全框架,提供身份认证、授权、加密和会话管理功能,简化了处理安全性的工作。在本文中,我们将深入探讨 Apache Shiro 的核心概念及其最简单的整合方式。 一、Shiro 的核心...
4、优点:快速上手、全面支持验证、授权、加密和会话、灵活自定义设计、支持web环境、可以无缝集成spring等优点。可以用来用户验证、用户授权、用户session管理、安全加密等 5、基于RBAC五张表:用户表 tb_user、...
Apache Shiro 是一个强大且易用的 Java 安全框架,它提供了认证、授权、加密和会话管理功能,可以非常方便地为应用程序提供安全保障。本文档合集包含了多个 PDF 文件,全面覆盖了 Apache Shiro 的核心概念和使用方法...
Apache Shiro 是一个强大且易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可以非常轻松地开发出足够安全的应用。张开涛的《跟我学Shiro》是一本深入浅出的教程,旨在帮助读者快速掌握Shiro的核心概念...
Apache Shiro是一款强大的Java安全框架,它为应用程序提供了身份验证、授权、会话管理和加密等核心功能。在本文中,我们将深入探讨Apache Shiro的基础配置和代码实现,以帮助你理解如何有效地使用Shiro进行权限控制...