网站的用户在shiro中用subject表示,使用的默认类是WebDelegatingSubject,是DelegatingSubject的子类,这个WebDelegatingSubject里面含有很多很多的参数:
·PrincipalCollection:主键(或者标记的集合),
·authenticated:是否校验过,
·Host:登录的ip
·session:当前的session(经过shiro封装的)
·request:发起的请求
·response:就是平时的response
· SecurityManager:spring中配置的securityManager。
Subject的生命周期:每一次访问时都会创建一个新的subject,然后创建shiro封装后的session(封装的HttpSession),然后将这个新创建的subject绑定到ThreadContext上,然后通过securityUtils中在程序的任何地方调用getSubject时都会返回同一个subject,也就是本次请求创建的那个。由于之前存放在HttpSession中的信息还会存在,所以不会丢失信息。Subject获得httpSession的办法最终还是调用的request.getSession(true),也就是根据sessionID来获取session的。
每一次创建完成subject都会讲subject的属性存放到session中去,存放的只有两个一个是principal,一个是是否校验成功。
相关推荐
你提到的 "shiro-root-1.3.2-source-release" 是Apache Shiro 1.3.2版本的源码发布包,其中包含了Shiro的核心实现类以及相关的集成示例。 Shiro 的核心组件包括以下几个部分: 1. **认证**(Authentication):这...
你提到的 "shiro-root-1.2.2-source-release.zip" 文件是Apache Shiro 1.2.2版本的源码发布包,包含了该版本的所有源代码,这对于开发者来说是一个宝贵的资源,可以深入理解Shiro的内部工作原理以及如何定制和扩展其...
通过对 "shiro-root-1.32-source-release" 源码的学习,开发者不仅可以掌握 Shiro 的核心功能,还能深入理解其实现原理,从而更好地在实际项目中应用和定制 Shiro,提升应用的安全性和可维护性。
Shiro的Remember Me服务允许用户在一次登录后,下次访问时自动登录,提高用户体验。它使用安全的加密技术存储用户的记住我信息,避免了安全风险。 7. **Caching**: Shiro提供了缓存管理,可以缓存认证和授权信息...
在"shiro-web-master.zip"这个压缩包中,我们很显然将要深入学习Shiro在Web环境下的应用,特别是涉及到加密技术、用户登录验证、权限控制以及利用Redis进行缓存管理等方面的知识。 1. **Shiro基础** Shiro的核心...
- **Subject**:Shiro中的核心概念,代表当前操作的用户,可以是已认证的或未认证的。 - **Realms**:负责与特定的安全存储(如数据库)交互,获取和验证凭证,以及授权信息。 - **Cryptography**:理解和使用Shiro...
2. **身份认证**:介绍Shiro的Subject、Realms和CredentialsMatcher等概念,以及如何实现自定义的认证逻辑,确保用户凭据的正确性。 3. **授权管理**:讲解Shiro的角色和权限模型,如何进行角色分配,以及基于角色...
Shiro 提供了Subject接口作为与Shiro交互的主要方式,包括登录、登出等操作。内部通过Realm来获取和验证用户的凭证, Realm是Shiro与应用安全数据源的桥梁,它可以是数据库、LDAP或任何其他存储用户信息的地方。 2....
1. **认证(Authentication)**:Shiro提供了一套完整的机制来验证用户身份,包括凭证匹配器(CredentialsMatcher)、 Realm(用于连接应用的特定安全数据源)以及Subject(代表当前操作的用户)。 2. **授权...
在源码中,你可以看到`Subject`接口及其实现类`DefaultSubject`,以及`Realm`接口,它是实际执行凭证验证的地方。 3. **授权(Authorization)** 授权是指确定用户是否有权限执行特定操作。Shiro使用角色(Role)...
Shiro提供了一个`Subject`接口来代表当前操作的用户,以及与之相关的认证和授权信息。`Subject`通过`Realm`进行认证,`Realm`是与应用程序特定的安全数据源(如数据库或LDAP)的桥梁。 2. **授权(Authorization)*...
通过上述知识点的学习,Java开发者及相关专业和技术爱好者将能够深入理解Shiro框架的核心概念与工作原理,并能够运用到实际项目开发中,实现用户认证、授权、加密等功能,从而提升项目的整体安全性和用户体验。
通过阅读源码,我们可以深入理解Shiro如何处理认证、授权、会话管理和加密的过程,以及它是如何与应用程序的数据源交互的。对于开发者来说,这有助于自定义安全策略,实现更复杂的安全需求,例如定制`Realm`以适应...
- **Subject**:Shiro 的核心概念,代表当前系统中的用户,它可以是真实用户、系统账户或其他代表安全实体的对象。 - **Realms**:Shiro与安全数据源(如数据库、LDAP等)交互的桥梁,负责认证和授权的实现。 - **...
通过分析这个源码示例,我们可以学习到如何在实际项目中配置和使用Shiro,实现用户认证、授权、会话管理等核心功能,为我们的Java应用构建一套安全可靠的防护体系。同时,对于Shiro的扩展和自定义,例如自定义Realm...
3. **shiro-core-1.2.3.jar**:Shiro的核心组件,包含了基础的安全管理类和接口,如Subject、SecurityManager、Realm等。 4. **shiro-web-1.2.3.jar**:这个模块是为Web应用程序设计的,提供了过滤器和其他Web相关...
例如,它提供了Subject接口,它是Shiro框架中的核心概念,代表了当前的安全主体(如用户)。此外,还包括Realm接口,它是连接Shiro与应用数据源的桥梁,实现 Realm 可以将Shiro与数据库或其他数据存储进行集成,进行...
在本系统中,Shiro负责处理用户的登录验证、角色权限分配以及访问控制等任务。例如,Shiro可以通过Subject对象来处理用户身份,Role和Permission接口则用于定义角色和权限,而Filter链则可以在HTTP请求层面进行权限...