Shiro框架

权限管理

  对用户访问系统的控制,按照安全规则或安全策略控制用户可以访问而且只能访问自己被授权的资源。

  权限管理包括用户身份认证和授权两部分,简称认证授权。

  Shiro是apache旗下一个开源框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证,权限授权、加密、会话管理等功能,组成了一个通用

安全认证框架。官方网址:http://shiro.apache.org/

  1.5.3.realease 202005版本

  核心,web集成,三方工具集成

架构图

关键词

1. Subject

  主体外部应用于subject进行交互。Subject在shiro中是一个接口。外部程序通过subject进行认证授权,而subject是通过SecurityManager安全管理器进行授权。

2. SecurityManager

  一切功能的入口,安全管理器,对全部的subject进行安全管理,shiro的核心。SecurityManager可以完成subject的认证、授权。SecurityManager是通过Authenticator进行认证。通过Authorizer进行授权,通过SessionManager进行会话管理。

3. Authenticator

  认证器,对用户身份进行认证,Authenticator是一个接口,shiro提供ModularRealmAuthenticator实现类,可以自定义认证器

4. Authorizer

  授权器,用户通过认证器认证器认证通过,在访问功能时需要通过授权器判断用户是否有此功能的操作权限

5. Realm

  领域,相当于datasource数据源,通常做测试的时候会把账号,密码,授权的资源放在Realm中。但实际开发需要数据库中索取,变量传递。

  注意:不要把realm理解成只从数据源中取数据,在realm中还有认证授权校验的相关代码。 

6. SessionManager

  会话管理,shiro定义了一套会话管理,他不依赖web容器的session,所以shiro可以使用在非web、应用上,也可以将分布式应用在会话集中在一点管理,此特性可使它实现单点登录。

7. SessionDao

  会话dao,对session会话操作的一套接口,比如将session存储到数据库,可以通过jdbc将会话存储到数据库。

8. CacheManager

  缓存管理,将用户权限数据存储到缓存,这样可以提高性能。

9. Cryptography

   密码管理,shiro提供了一套加密/解密的组件,方便开发。比如常提供的散列,加/解密的功能。

原文地址:https://www.cnblogs.com/HelloM/p/14155813.html