`
Technoboy
  • 浏览: 153797 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Shiro User Manual-Architecture

阅读更多
1. Overview
Shiro的设计目标是通过直观而简易的API,简化应用安全的操作。Shiro的核心设计思想模型化了应用安全性的问题:谁在与应用进行交互。软件应用都是基于用例设计的。当你在设计用户接口或服务API时,都是基于用户如何跟软件交互的基础上。比如:如果当前和系统交互的用户已登录,就显示查看用户信息的按钮,否则显示登录按钮。这个例子表明,应用都是为了满足客户的需求,即便当前交互的"用户"是其他软件系统。Shiro通过其内部设计对应了这些概念。

2. High-Level Overview
Shiro有3个核心概念:Subject,SecurityManager和Realms。下面的图表描述了这三个组件间的交互:

1. Subject
  Subject本质上为当前执行用户的安全相关视图。而"User"通常表示人,这里的Subject可以是人,也可以是第三方服务,后台账户,定时服务或任何其他与应用交互的事物。
2. SecurityManager
  SecurityManager是Shiro框架的核心,协调着所有安全组件。当配置好SecurityManager和其内部组件后,应用开发人员就只和Subject API交互。需要注意的是,与Subject的交互,最终都将被转换为SecurityManager的操作。
3. Realms
Realms是Shiro和应用数据的桥梁,比如用户执行认证,授权时,Shiro就会查找配置的Realms,进行用户的验证和授权。Shiro内置了很多Realms实现,比如LADP,关系型数据库,INI文件和properties文件等。
和其他组件一样,SecurityManager管理着Realms如何获取用户数据和标识信息。

3. Detailed Architecture
下面图表描述了Shiro的核心概念:

1. Subject(org.apache.shiro.subject.Subject)
  当前和应用交互的安全实体视图(可以是用户,第三方服务,定时服务等)
2. SecurityManager(org.apache.shiro.mgt.SecurityManager)
  Shiro框架的核心,协调着所有组件。
3. Authenticator(org.apache.shiro.authc.Authenticator)
  用户认证组件,负责用户的认证操作。当用户登录时,实际上是Authenticator和每个Realms进行交互。
   1. Authentication Strategy(org.apache.shiro.authc.pam.AuthenticationStrategy)
   当配置了多个Realm时,由Authentication Strategy决定如何进行认证。
4. Authorizer(org.apache.shiro.authz.Authorizer)
  用户权限组件,控制用户的访问权限。
5. SessionManager(org.apache.shiro.session.mgt.SessionManager)
  管理用户Session。Shiro提供了一个内部Session,可以在任何环境下使用。
  1. SessionDAO(org.apache.shiro.session.mgt.eis.SessionDAO)
   执行Session的CRUD操作。
6. CacheManager(org.apache.shiro.cache.CacheManager)
  缓存管理器,负责创建和管理缓存。由于Shiro可以通过数据源进行认证,授权,session管理等操作,缓存这些对象将提高执行的效率。支持流行的开源和企业级缓存产品。
7. Cryptography(org.apache.shiro.crypto.*)
  crypto包提供了简单易用的加密,散列,编解码器的实现。
8. Realms(org.apache.shiro.realm.Realm)
  Shiro与应用数据的桥梁。

4. The SecurityManager
Shiro鼓励以Subject为核心进行编程,因此应用开发人员很少会与SecurityManager打交道。但是,了解SecurityManager是如何工作的,对于配置一个应用非常重要。

5. Design
SecurityManager协调着所有组件,管理着所用应用的状态,包括:
1. Authentication(认证)
2. Authorization(授权)
3. Session Management(Session管理)
4. Cache Management(缓存管理)
5. Realm coordination(协调Realm)
6. Event propagation(事件传播)
7. "Remember Me" Services(记忆服务)
8. Subject creation(Subject创建)
9. Logout(注销)
等。
为了简化配置,达到灵活性配置的目的,Shiro的实现都高度的模块化。SecurityManager作为一个轻量级的容器,将大部分的工作都委托给其内部组件。尽管组件执行着真正的逻辑,但是SecurityManager知道如何正确的协调它们。
  • 大小: 37.1 KB
  • 大小: 159.7 KB
分享到:
评论

相关推荐

    shiro(shiro-all-1.8.0.jar)

    shiro(shiro-all-1.8.0.jar)

    shiro-core-1.4.0-API文档-中文版.zip

    赠送jar包:shiro-core-1.4.0.jar; 赠送原API文档:shiro-core-1.4.0-javadoc.jar; 赠送源代码:shiro-core-1.4.0-sources.jar; 赠送Maven依赖信息文件:shiro-core-1.4.0.pom; 包含翻译后的API文档:shiro-core...

    shiro-config-core-1.4.0-API文档-中文版.zip

    赠送jar包:shiro-config-core-1.4.0.jar; 赠送原API文档:shiro-config-core-1.4.0-javadoc.jar; 赠送源代码:shiro-config-core-1.4.0-sources.jar; 赠送Maven依赖信息文件:shiro-config-core-1.4.0.pom; ...

    shiro-ehcache-1.4.0-API文档-中文版.zip

    赠送jar包:shiro-ehcache-1.4.0.jar; 赠送原API文档:shiro-ehcache-1.4.0-javadoc.jar; 赠送源代码:shiro-ehcache-1.4.0-sources.jar; 赠送Maven依赖信息文件:shiro-ehcache-1.4.0.pom; 包含翻译后的API文档...

    shiro-jar-1.7.0.zip相关资源包

    解决:升級1.7后附件...shiro-cas-1.7.0.jar shiro-core-1.7.0.jar shiro-ehcache-1.7.0.jar shiro-spring-1.7.0.jar shiro-web-1.7.0.jar CustomShiroFilterFactoryBean.java spring-context-shiro.xml 修改说明.txt

    shiro-crypto-cipher-1.4.0-API文档-中文版.zip

    赠送jar包:shiro-crypto-cipher-1.4.0.jar; 赠送原API文档:shiro-crypto-cipher-1.4.0-javadoc.jar; 赠送源代码:shiro-crypto-cipher-1.4.0-sources.jar; 赠送Maven依赖信息文件:shiro-crypto-cipher-1.4.0....

    shiro-crypto-core-1.4.0-API文档-中文版.zip

    赠送jar包:shiro-crypto-core-1.4.0.jar; 赠送原API文档:shiro-crypto-core-1.4.0-javadoc.jar; 赠送源代码:shiro-crypto-core-1.4.0-sources.jar; 赠送Maven依赖信息文件:shiro-crypto-core-1.4.0.pom; ...

    shiro-crypto-core-1.4.0-API文档-中英对照版.zip

    赠送jar包:shiro-crypto-core-1.4.0.jar; 赠送原API文档:shiro-crypto-core-1.4.0-javadoc.jar; 赠送源代码:shiro-crypto-core-1.4.0-sources.jar; 赠送Maven依赖信息文件:shiro-crypto-core-1.4.0.pom; ...

    shiro-cas-1.2.3-API文档-中文版.zip

    赠送jar包:shiro-cas-1.2.3.jar; 赠送原API文档:shiro-cas-1.2.3-javadoc.jar; 赠送源代码:shiro-cas-1.2.3-sources.jar; 赠送Maven依赖信息文件:shiro-cas-1.2.3.pom; 包含翻译后的API文档:shiro-cas-...

    shiro-config-core-1.4.0-API文档-中英对照版.zip

    赠送jar包:shiro-config-core-1.4.0.jar; 赠送原API文档:shiro-config-core-1.4.0-javadoc.jar; 赠送源代码:shiro-config-core-1.4.0-sources.jar; 赠送Maven依赖信息文件:shiro-config-core-1.4.0.pom; ...

    shiro-config-ogdl-1.4.0-API文档-中英对照版.zip

    赠送jar包:shiro-config-ogdl-1.4.0.jar; 赠送原API文档:shiro-config-ogdl-1.4.0-javadoc.jar; 赠送源代码:shiro-config-ogdl-1.4.0-sources.jar; 赠送Maven依赖信息文件:shiro-config-ogdl-1.4.0.pom; ...

    shiro-cas-1.2.3-API文档-中英对照版.zip

    赠送jar包:shiro-cas-1.2.3.jar; 赠送原API文档:shiro-cas-1.2.3-javadoc.jar; 赠送源代码:shiro-cas-1.2.3-sources.jar; 赠送Maven依赖信息文件:shiro-cas-1.2.3.pom; 包含翻译后的API文档:shiro-cas-...

    shiro-cache-1.4.0-API文档-中文版.zip

    赠送jar包:shiro-cache-1.4.0.jar; 赠送原API文档:shiro-cache-1.4.0-javadoc.jar; 赠送源代码:shiro-cache-1.4.0-sources.jar; 赠送Maven依赖信息文件:shiro-cache-1.4.0.pom; 包含翻译后的API文档:shiro-...

    shiro-core-1.7.1 jar

    shiro shiro-core-1.7.1 jar shiro漏洞

    shiro-attack-4.7.0-SNAPSHOT-all.zip

    shiro_attack-4.7.0-SNAPSHOT-all.zip 序列化验证工具

    shiro-cache-1.4.0-API文档-中英对照版.zip

    赠送jar包:shiro-cache-1.4.0.jar; 赠送原API文档:shiro-cache-1.4.0-javadoc.jar; 赠送源代码:shiro-cache-1.4.0-sources.jar; 赠送Maven依赖信息文件:shiro-cache-1.4.0.pom; 包含翻译后的API文档:shiro-...

    shiro-all-1.3.2.jar

    shiro-all-1.3.2.jar

    shiro-event-1.4.0-API文档-中文版.zip

    赠送jar包:shiro-event-1.4.0.jar; 赠送原API文档:shiro-event-1.4.0-javadoc.jar; 赠送源代码:shiro-event-1.4.0-sources.jar; 赠送Maven依赖信息文件:shiro-event-1.4.0.pom; 包含翻译后的API文档:shiro-...

    shiro-root-1.4.1-source-release.zip

    给广大开发爱好者一个开发框架:shiro-root-1.4.1-source-release.zip

    SpringMVC-Mybatis-Shiro-redis-master

    SpringMVC-Mybatis-Shiro-redis-master..............

Global site tag (gtag.js) - Google Analytics