Apache Shiro技术详解.doc

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Apache Shiro技术详解

1.什么是Apache Shiro Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能: 2.Apache Shiro可以做什么 (1) 验证用户身份; (2) 对用户执行访问控制,如: 确定用户是否为指定的角色,确定用户是否有权限做某件事情; (3) 在任何环境下使用会话(session)API,甚至在没有web或者EJB容器的环境下; (4) 影响在身份认证、访问控制或整个会话周期中的事件; (5) 综合一种或多种用户安全数据的数据源并将这些数据源表现成一个单独的综合的用户视图(view); (6) 允许单点登录(SSO)功能设计; 注:SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。 (7) 允许用户使用???住我(Remember Me)服务而无须登录。 3.Apache Shiro的特征 下图表展示了Shiro的主要功能特点: Shiro的四大安全基石:认证(Authentication)、授权(Authorization)、会话管理(Session Management)和加密(Cryptography)。 认证(Authentication):有时可看作为“登录(login)”,它是用户证明自己是谁的一个行为。 授权(Authorization):访问控制过程,好比决定“认证”通过的用户可以访问“什么”。 会话管理(Session Management):管理用户指定的会话(sessions),甚至在非WEB或EJB程序中。 加密(Cryptography):使用加密算法保护数据更加安全,例如密码安全和对敏感数据的保护。 还有一些附加的功能以在不同的程序环境中进行支持和加强,特别是: Web支持:利用Shiro的web支持API可以很容易地实现web程序安全; Caching:Caching在Apache Shiro的API中是一等公民,确保安全认证的动作快速而有效。 并发(Concurrency):Apache Shiro支持多线程; 测试(Testing):支持测试,帮助你开发单元和综合测试程序确保你的代码如你所预期的那样进行安全认证。 “Run As”:允许用户使用其他用户身份(如果被允许),这在执行某些管理角本中非常有用。 “Remember Me”:在整个会话周期中(sessions)记住用户的身份,用户只需要在程序强制要求登录的情况下才需要登录。 4.Apache Shiro架构简介 首先,来了解一下Shiro的三个核心组件:Subject, SecurityManager 和 Realms.如下图: Subject Application Code Shiro SecurityManager Realm Subject:即“当前操作用户”。但是,在Shiro中,Subject这一概念并不仅仅指人,也可以是第三方进程、后台帐户(Daemon Account)或其他类似事物。它仅仅意味着“当前跟软件交互的东西”。但考虑到大多数目的和用途,你可以把它认为是Shiro的“用户”概念。 Subject代表了当前用户的安全操作,SecurityManager则管理所有用户的安全操作。 SecurityManager:它是Shiro框架的核心,典型的Facade模式,Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务。 Realm: Realm充当了Shiro与应用安全数据间的“桥梁”或者“连接器”。也就是说,当对用户执行认证(登录)和授权(访问控制)验证时,Shiro会从应用配置的Realm中查找用户及其权限信息。 从这个意义上讲,Realm实质上是一个安全相关的DAO:它封装了数据源的连接细节,并在需要时将相关数据提供给Shiro。当配置Shiro时,你必须至少指定一个Realm,用于认证和(或)授权。配置多个Realm是可以的,但是至少需要一个。 Shiro内置了可以连接大量安全数据源(又名目录)的Realm,如LDAP、关系数据库(JDBC)、类似INI的文本配置资源以及属性文件等。如果缺省的Realm不能满足需求,你还可以插入代表自定义数据源的自己的Realm实现。 Shiro的完整架构图: Shiro主要组件还包括: Authenticator :认证就是核实用户身份的过程。这个过程的常见例子是大家都熟悉的“用户/密码”组合。多数用户在登录软件系统时,通常提供自己的用户名(当事人)和支持他们的密码(证书)。如果存

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档