# Shiro安全框架简介
文档目标:
- 认识Shiro的整体架构,各组件的概念
- Shiro认证,授权的过程
- Shiro自定义的Realm,Filter
- Shiro Session管理
- Shiro 缓存管理
- Shiro集成Spring
# 什么是Shiro
- Apache的灵活的开源安全框架
- 认证、授权、企业会话管理、安全加密、缓存管理等等
# Shiro与Spring Security比较
Shiro与Spring Security区别? Apache Shiro
- 简单、灵活
- 可脱离Spring
- 粒度较粗 Sping Security
- 复制、笨重
- 不可脱离Spring
- 粒度更细
# Shiro整体架构
Security Manager管理着如下组件:Authenticator、Authorizer、Session Manager、Session DAO、Cache Manager等
- Authenticator: 认证器,管理登陆、登出
- Authorizer: 授权器,赋予 主体有什么权限
- Session Manager: Shiro自己实现了一个session管理机制,可以在不借助任何外部容器的情况下使用session
- Session DAO: 提供了对Session的操作,主要是对Session的增删改查
- Cache Manager:缓存管理器
- Pluggable Realms(1 or more): Shiro与数据源的一个桥梁,Shiro获取认证信息,权限数据,角色数据,就是通过Pluggable Realms来获取的
- Cryptography: 是用来做加密的,可以使用Cryptography非常快捷方便的来做数据加密
# Authenticator认证器是如何认证的呢?
主体提交请求到Security Manager,Security Manager调用Authenticator去做认证,Authenticator获取认证数据 是从Realms来获取的, 而 Realms是从下面的数据源数据库里获取的,从数据库中获取的认证数据与主体提交过来的认证数据去做比对, Authorizer授权进来也是一样,Authorizer给主体赋予的权限也是从 Realms 或者 缓存中 来获取的 角色数据、权限数据
# Shiro认证
Shiro的认证过程 SecurityManager是用来提供安全认证服务的,所以我们在做Shiro认证的时候,我们先要创建SecurityManager对象,构建SecurityManager环境