补一篇shiro相关的概念
shiro是一个强大灵活的开源安全框架,可以干净利落的处理认证、授权、企业会话管理和加密。
shiro的首要目标是简单和易于理解。安全有时候是非常复杂令人头疼的问题,shiro隐藏了复杂
的细节,暴露了简介直观的API来简化开发者使他们的应用程序更安全的努力。
shiro可以做一下事情:
进行用户认证
执行访问控制
单点登录
Remember Me服务
安全的一些概念:身份认证、授权、会话管理、加密被认为是构成应用安全的基础要素。
身份认证,就是验证用户身份,典型的“登录”过程就是身份认证的过程。
授权:也就是访问控制(ac),也即某用户可以可以使用应用的哪些功能?
会议管理:管理用户特定的会话,即使在非Web或EJB应用。
加密:保持数据的安全使用的加密算法,同时仍然易于使用。
对于Session,在WEB应用中它基于HttpSession,而一般应用中默认使用企业会话管理。shiro的Session
用起来和HttpSession差不多,并且使用它不需要Http环境。
在最高的层次上讲,shiro主要有三个主要的概念,它们分别是Subject、SecurityManager和Realms。
shiro使用Subject这一概念来描述当前用户,‘User’这个词通常隐含的指一个人,但是Subject可以是一个
人也可以代表第三方服务,守护账户,定时作业,或者其他类似的与软件交互的事物。
所有Subject实例都与一个SecurityManager绑定,当你和一个Subject交互时,所有交互都会通过SecurityManager
转换为特定Subject的交互。
SecurityManager是shiro架构的核心,它扮演‘保护伞’对象的角色,与其他内部安全组件一起构成对象图的核心。
SecurityManager及其内贸部对象图一旦被应用配置,它基本上就被放在一边不再被程序员使用了,
开发人员基本上总是在与Subject的相关API打交道。它在幕后支持Subject的安全操作。
Realms在shiro与你的应用程序的安全数据之间充当着桥梁或者说是连接器的作用。
从这种意义上讲,Reaml就是一个特定的安全DAO,它为shiro提供所需的数据。
在配置shiro时,你必须为认证、授权指定至少一个可用的Realm。
shiro提供了现成的Realm连接到LDAP、关系数据库(JDBC)、ini和properties文件等。
用户可以使用自己的Realm
shiro的[urls]规则,例如
[urls]
/index.html = anon
/user/** = authc
/admin/** = authc, roles[administrator]
上面的3个URL分别表示根目录下的index.html可以匿名访问,user目录下的所有资源
都需要经过认证后才可访问,admin目录下的所有资源必须经过认证,并且需要管理员角色
才能访问。
分享到:
相关推荐
Apache Shiro是一个强大的Java安全框架,它为开发者提供了认证、授权、加密和会话管理等功能,使得在构建...通过理解Shiro的基本概念和组件,开发者能够更有效地利用Shiro保护他们的应用程序,并确保用户数据的安全。
3. **Shiro 相关概念** - **Subject**: 表示当前用户或系统的安全主体,可以是用户、服务等,是 Shiro 的核心概念。 - **Session**: Shiro 支持会话管理,可以替代或扩展基于Servlet容器的会话。 - **...
1. **Shiro基础**:讲解Shiro的基本概念,如Subject、Realms、Caches等,以及它们在安全管理中的作用。 2. **身份验证流程**:详述用户登录过程,包括凭证匹配、Remember Me功能,以及如何自定义认证逻辑。 3. **...
8. **shiro-config-core-1.7.1.jar**:基础配置模块,包含配置解析和加载的相关类。 9. **shiro-ehcache-1.7.1.jar**:Shiro的EhCache缓存支持,用于存储session等信息,提高性能和减少数据库压力。 在使用Shiro ...
首先,让我们来了解一下Shiro的核心概念: 1. **认证**:这是验证用户身份的过程。在Shiro中,你可以通过`Subject`接口来进行认证操作,如登录。`Subject`代表当前的用户,它封装了认证、授权、会话管理和密码加密...
通过阅读,你可以了解到Shiro的基本架构,包括Subject、Realms、Caches等核心概念。Subject是Shiro中的核心接口,代表当前用户的安全上下文;Realms是数据源,负责与后台数据存储进行交互,完成身份验证和授权;...
在"Shiro_lib.zip"这个压缩包中,我们很显然看到它包含了一系列与Apache Shiro相关的jar包。这些jar文件是Shiro框架的核心组成部分,用于在Java项目中实现安全控制。 首先,让我们来了解一下Shiro的核心概念: 1. ...
大多数情况下,可以将其视为 Shiro 的“用户”概念。Subject 代表了当前用户的所有安全相关操作。 2. **SecurityManager**:安全管理者,是 Shiro 的核心组件之一,采用 Facade 模式设计。它负责管理 Shiro 内部...
1. **Subject**:Shiro 的核心概念,代表当前系统中的“安全主体”,可以是用户、服务、系统等。Subject 实现了与安全相关的操作,如登录、登出、获取权限等。 2. **Realms**: Realm 是 Shiro 与具体安全数据源...
Subject是Shiro的中心概念,代表当前用户或系统中的任何实体。Realms是Shiro与应用安全数据源(如数据库、LDAP等)的桥梁,负责验证凭证。CredentialsMatcher则用于比较用户提供的凭证(如密码)和存储在 Realm 中的...
总的来说,“Shiro入门到精通”课程覆盖了从基础概念到高级特性的全面内容,结合源码分析和Spring Security的对比,将使你对Shiro有深入的理解,能够在实际项目中灵活运用。无论你是初学者还是有经验的开发者,都能...
2. **org.apache.shiro.aspectj**: 这个模块与AOP相关,特别地,它实现了对AspectJ的支持,使开发者能够利用AspectJ的语法和功能来定义和执行Shiro的安全策略。 3. **org.apache.shiro.authc**: 这是Shiro的身份...
Apache Shiro是一个强大且易用的Java安全框架,主要用于身份认证、授权(权限控制)、会话管理和加密等安全相关的功能。在这个"shiro权限案例demo"中,我们将深入探讨Shiro如何实现用户权限的管理。 首先,让我们...
Shiro 的核心概念** - **Subject**:Shiro 的核心接口,代表当前操作的用户。可以是已认证的用户,也可以是匿名用户。 - **Realms**:Shiro 从 Realm 获取安全信息(如用户、角色、权限)。每个 Realm 对应一个数据...
在这个名为"shiro上课代码.zip"的压缩包中,我们可以期待找到一系列与Shiro框架相关的代码示例和教程,帮助我们学习如何在实际项目中应用Shiro。 1. **Shiro基础概念** - **认证**:Shiro提供了用户身份验证的机制...
在本文中,我们将深入探讨 Apache Shiro 的核心概念及其最简单的整合方式。 一、Shiro 的核心组件 1. 身份认证(Authentication):这是验证用户身份的过程,通常涉及用户名和密码的输入。Shiro 提供了 Realm 接口...
2. **授权(Authorization)**:Shiro的权限管理非常灵活,支持角色(Role)和权限(Permission)的概念,可以基于URL、方法或任何自定义对象进行权限控制。用户、角色和权限之间的关系可以通过配置文件或者数据库...
2. **SecurityManager**:Shiro 的安全管理器,负责协调Subject 和其他组件,并管理安全相关的配置。它是Shiro 的核心,管理着所有Subject 和其运行的环境。 3. **Cryptography**:Shiro 提供了加密支持,包括密码...
**一、Shiro基本概念** 1. **认证**:也称为身份验证,是确认用户身份的过程,通常通过用户名和密码进行验证。 2. **授权**:也称为访问控制,是指确定已认证的用户是否允许执行某些操作。 3. **加密**:用于保护...
在"shiro-1.3.2.jar包"中,包含了Shiro的核心组件,这些组件负责处理安全相关的任务,如用户身份验证、权限授权、会话管理和密码加密。此版本为1.3.2,是Shiro的一个稳定版本,发布于2016年,适合大部分Java项目使用...