shiro简介
1. 什么是shiro
Aparche shiro 是java的一个安全框架,属于Aparche软件基金会。可以提供认证,授权,加密,会话管理,缓存等一些列权限操作。
2. shiro的组成部分
shiro框架功能组成大致如下图:
核心部分有:
- 身份认证
- 授权
- session会话管理
- 加密
shiro的项目实现架构
主要涉及到三那个主体:
- Subject:当前用户对象。即shiro框架对外的门面。所有的操作入口。
- securityManager:管理着所有的Subject,是权限操作的实际执行者。
- Realm:为安全数据源。即权限存储位置。shiro不设置权限。而是管理权限。权限的规则需用户提供。
shiro内部实现架构大致如图所示:
关键组件介绍:
subject:主体,可以是用户也可以是程序,主体要访问系统,系统需要对主体进行认证、授权。
securityManager:安全管理器,主体进行认证和授权都 是通过securityManager进行。
authenticator:认证器,主体进行认证最终通过authenticator进行的。
authorizer:授权器,主体进行授权最终通过authorizer进行的。
sessionManager:web应用中一般是用web容器对session进行管理,shiro也提供一套session管理的方式。
SessionDao: 通过SessionDao管理session数据,针对个性化的session数据存储需要使用sessionDao。
cache Manager:缓存管理器,主要对session和授权数据进行缓存,比如将授权数据通过cacheManager进行缓存管理,和ehcache整合对缓存数据进行管理。
realm:域,领域,相当于数据源,通过realm存取认证、授权相关数据。