`
peterwanghao
  • 浏览: 132117 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Apache Shiro 核心概念

 
阅读更多

Shiro框架中有三个核心概念:Subject ,SecurityManager和Realms。


2.1.1 Subject
Subject一词是一个安全术语,其基本意思是“当前的操作用户”。称之为“用户”并不准确,因为“用户”一词通常跟人相关。在安全领域,术语“Subject”可以是人,也可以是第三方进程、后台帐户(Daemon Account)、定时作业(Corn Job)或其他类似事物。它仅仅意味着“当前跟软件交互的东西”。但考虑到大多数目的和用途,你可以把它认为是Shiro的“用户”概念。

在程序中你都能轻易的获得Subject,允许在任何需要的地方进行安全操作。每个Subject对象都必须与一个SecurityManager进行绑定,你访问Subject对象其实都是在与SecurityManager里的特定Subject进行交互。


2.1.2 SecurityManager
Subject的“幕后”推手是SecurityManager。Subject代表了当前用户的安全操作,SecurityManager则管理所有用户的安全操作。它是Shiro框架的核心,充当“保护伞”,引用了多个内部嵌套安全组件,它们形成了对象图。但是,一旦SecurityManager及其内部对象图配置好,它就会退居幕后,应用开发人员几乎把他们的所有时间都花在Subject API调用上。
那么,如何设置SecurityManager呢?嗯,这要看应用的环境。例如,Web应用通常会在Web.xml中指定一个Shiro Servlet Filter,这会创建SecurityManager实例,如果你运行的是一个独立应用,你需要用其他配置方式,但有很多配置选项。
一个应用几乎总是只有一个SecurityManager实例。它实际是应用的Singleton(尽管不必是一个静态Singleton)。跟Shiro里的几乎所有组件一样,SecurityManager的缺省实现是POJO,而且可用POJO兼容的任何配置机制进行配置 - 普通的Java代码、Spring XML、YAML、.properties和.ini文件等。基本来讲,能够实例化类和调用JavaBean兼容方法的任何配置形式都可使用。

2.1.3 Realms
Shiro的第三个也是最后一个概念是Realm。Realm充当了Shiro与应用安全数据间的“桥梁”或者“连接器”。也就是说,当与像用户帐户这类安全相关数据进行交互,执行认证(登录)和授权(访问控制)时,Shiro会从应用配置的Realm中查找很多内容。
从这个意义上讲,Realm实质上是一个安全相关的DAO:它封装了数据源的连接细节,并在需要时将相关数据提供给Shiro。当配置Shiro时,你必须至少指定一个Realm,用于认证和(或)授权。配置多个Realm是可以的,但是至少需要一个。
Shiro内置了可以连接大量安全数据源(又名目录)的Realm,如LDAP、关系数据库(JDBC)、类似INI的文本配置资源以及属性文件 等。如果缺省的Realm不能满足需求,你还可以插入代表自定义数据源的自己的Realm实现。
象其他内部组件一样,由SecurityManager来管理如何使用Realms来获取安全的身份数据。


分享到:
评论

相关推荐

    Apache Shiro教程

    在本文中,我们将详细探讨Shiro的核心概念、主要功能和常见用法。 1. **核心概念** - **身份验证(Authentication)**:确认用户的身份,即验证用户提供的凭证(如用户名和密码)是否正确。 - **授权...

    Apache shiro 1.13.0源码

    1. **Subject**:Shiro 的核心概念,代表当前系统中的“安全主体”,可以是用户、服务、系统等。Subject 实现了与安全相关的操作,如登录、登出、获取权限等。 2. **Realms**: Realm 是 Shiro 与具体安全数据源...

    Apache_Shiro_使用手册(一)Shiro架构介绍

    大多数情况下,可以将其视为 Shiro 的“用户”概念。Subject 代表了当前用户的所有安全相关操作。 2. **SecurityManager**:安全管理者,是 Shiro 的核心组件之一,采用 Facade 模式设计。它负责管理 Shiro 内部...

    Apache Shiro 集成-spring

    首先,我们来理解一下Shiro的核心概念: 1. 认证:验证用户身份,通常涉及用户名和密码的匹配。 2. 授权:确定用户是否有执行特定操作的权限。 3. 加密:对敏感数据进行加密处理,防止数据泄露。 4. 会话管理:跟踪...

    apache shiro 实例

    本实例将深入探讨 Apache Shiro 的核心概念和常见用法。 1. **认证**:Shiro 提供了用户身份验证的能力,即验证用户是否为他们声称的身份。这包括用户名和密码的验证,可以通过自定义 Realm 实现与数据库或其他数据...

    shiro最简单整合版本

    在本文中,我们将深入探讨 Apache Shiro 的核心概念及其最简单的整合方式。 一、Shiro 的核心组件 1. 身份认证(Authentication):这是验证用户身份的过程,通常涉及用户名和密码的输入。Shiro 提供了 Realm 接口...

    apache shiro文档

    本文档合集包含了多个 PDF 文件,全面覆盖了 Apache Shiro 的核心概念和使用方法,非常适合初学者和进阶开发者学习。 1. **认证**:在 Shiro 中,认证是指验证用户身份的过程。Shiro 提供了简单易用的 API 来处理...

    apache-shiro教程完整版.7z

    张开涛的《跟我学Shiro》是一本深入浅出的教程,旨在帮助读者快速掌握Shiro的核心概念与实践技巧。 Shiro 的核心组件包括: 1. **认证**:Shiro 提供了用户身份验证的机制,确保用户身份的真实性。这通常涉及到...

    apache shiro 开发文档

    通过这个教程,你将学习 Shiro 的核心概念,并了解其设计原理和 API 使用方法。教程提供了现成的应用程序实例,方便你参考和学习。 ##### 2. 构建设置 为了搭建这样一个简单的示例应用,你需要准备 Java 1.5 或更...

    shiro jar包及源码下载

    "shiro-core-1.3.2-sources.jar"则是Shiro核心模块的源代码包,开发者可以通过阅读源码来深入理解Shiro的工作原理,这对于进行定制化开发或者排查问题非常有帮助。Shiro的核心组件包括以下几个方面: 1. **认证**:...

    shiro attck213213

    1. **Apache Shiro核心概念**: - **身份验证(Authentication)**:这是验证用户身份的过程,通常涉及用户名和密码的校验。 - **授权(Authorization)**:也称为访问控制,确定验证后的用户是否有权限访问特定...

    Apache_Shiro_reference 使用文档(中文版) 共92页.pdf

    在这个过程中,开发者可以逐渐掌握Shiro的核心概念,包括如何配置Shiro环境、如何利用Shiro提供的安全特性来保护应用等。 Apache Shiro的灵活性和强大的功能使其成为开发安全应用程序的理想选择。开发者无需深入...

    Apache Shiro 使用分享

    在本文中,我们将深入探讨Apache Shiro的核心概念、主要功能以及如何在实际项目中进行使用。 1. **核心概念** - **认证**:验证用户身份的过程,即确认用户是谁。Shiro 提供了 UsernamePasswordToken 等认证令牌类...

    Apache_Shiro参考手册中文版

    Shiro的设计目标是降低安全操作的复杂性,即使是复杂的概念也能通过它的API得到简化,从而使得开发人员能够专注于业务逻辑的开发而不是安全性细节的处理。 Shiro的主要功能和特点包括以下几个方面: 1. 身份验证...

    shiro-all jar

    7. **org.apache.shiro.subject**: Shiro的核心概念,代表当前操作的主体(如用户),包括其认证信息和授权信息。 8. **org.apache.shiro.web**: 针对Web应用的安全管理,提供过滤器、控制器等功能,易于与Servlet...

    Apache Shiro 中文手册

    这份"Apache Shiro 中文手册"将帮助你深入理解和掌握Shiro的核心概念与使用方法。 1. **认证**:认证是验证用户身份的过程。在Shiro中,你可以自定义实现认证逻辑,或者使用内置的Realm(领域)来连接数据库或其他...

    apache shiro中文教程

    首先,Shiro的介绍部分涵盖了基本概念和术语,如“Subject”(主体,可以理解为访问系统的用户),“Realms”(领域,用于连接Shiro和后端安全数据源)等。Shiro的架构设计是基于简单、直观的编程模型,易于理解和...

    Apache_Shiro参考手册中文版_shiro_

    通过阅读《Apache Shiro参考手册中文版》PDF,你可以深入了解每个功能的详细用法,包括如何配置Shiro,如何创建自定义的 Realm,以及如何在代码中使用Subject、Session和Cache等核心概念。手册还会涵盖实际案例和...

    Apache Shiro 身份认证例子-源码

    本资源包含了一个 Apache Shiro 的身份认证例子的源码,这对于理解和实践 Shiro 的核心功能非常有帮助。 身份认证是安全领域中的基础概念,它涉及到验证用户的身份是否合法。在 Shiro 中,这个过程通常分为几个步骤...

    shiro1.7.1.zip

    标题中的"shiro1.7.1.zip"表明这是一个包含Apache Shiro 1.7.1版本所有核心模块的压缩包,用于安全升级或新项目部署。 在描述中提到的"最新版shiro1.7.1.jar包,安全升级专用",暗示这个版本可能是对之前版本的安全...

Global site tag (gtag.js) - Google Analytics