关于shiro的一些小理解

一、关于shiro框架的一些基本概念:

   1.Subject(对象)

安全领域层面命名的,当前和系统交互的实体。(用户,第三方服务,定时任务等等)

    2. securityManager(安全管理)

securityManagershiro框架的核心,像一个伞对象,协调管理的组件,保证组件之间的关联配合,同时也管理shiro视角的每一个用户,保证每一个用户的安全操作执行正确。

   3.Authenticator(用户认证)

Authenticator组件负责执行用户的登录操作。当用户尝试登录时,Authenticator会执行登录逻辑。Authenticator知道怎么和存储用户账户信息的一个或多个Realm协调工作。Realm中维护的数据用来检查用户身份,确保这个用户就是他所说的那个用户。

   4.Authentication Strategy(认证策略)

如果配置了多个RealmAuthenticationStrategy将会协调Realm来确定条件来判断认证成功或者失败。

   5.Authorizer(授权者)

Authorizer组件负责确保用户的访问控制。说白了,他就是管控用户可以或者不可以做什么事情。就像AuthenticatorAuthorizer也知道如何和多种数据源协调来访问rolepermission信息。Authorizer使用这些信息来验证用户是否允许做一个给定的操作。

   6.SessionManager(会话管理)

SessionManager负责创建和管理用户的session生命周期,在任何环境中都可以给用户提供健壮的session体验。这在安全框架世界中是第一无二的特性----Shiro在任何环境,甚至没有Web/servlet或者EJB的环境中,都具备原生管理用户session的能力。默认情况下,Shiro会尽可能使用已经存在的session机制(比如Servlet Container),但是如果没有存在的session机制,例如在独立的程序或者非web环境,他会使用内置的企业session管理来提供同样的编程体验。既有的SessionDAO允许任使用何数据源持久化session

   7.SessionDAO(会话层)

SessionManager操作SessionDAO来执行session持久化(CRUD)操作。这可以允许任何数据存储被插入到session管理的基础设施中。

   8.CacheManager(缓存管理)

CacheManager创建和管理其它Shiro组件使用的缓存实例生命周期。因为Shiro认证、授权、session管理中可以访问多种后端数据源,缓存一直以来都是最优级别的架构特性,来提高使用这些数据的性能。任何的现代开源或者企业级缓存产品都可以插入到Shiro中来提供快速高效的用户体验。

   9.Cryptography(密码系统)

Cryptography对于企业级安全框架是顺理成章的附加物。Shirocrypto包含有易于使用和理解的密码工具,Hash(也称作摘要)和多种多样的编码实现。这个包中所有的类都精心设计以确保易于使用和理解。任何使用过java原生加密包的都知道它像驯兽一样困难。ShiroAPI简化了Java机制,使得普通人也可以很简单的去使用。

   10.Realms

如上文所述,RealmsShiro和你应用的安全数据间扮演着桥梁或者连接器的角色。当发生一次真实的安全数据交互,比如用户登录和鉴权,Shiro会从程序配置好的一或多个Realm中查询很多次数据。你可以配置你所需要的任意数量的RealmShrio在授权和鉴权的时候会去协调使用他们。

二、shiro包含的基本功能

1.授权

2.鉴权

3.session管理

4.cache管理

5.Realm管理

6.事件传播

7.Rmember Me服务

8.Subject创建

9.登出及更多

猜你喜欢

转载自www.cnblogs.com/blackyang/p/9072201.html