Apache Shiro

## 标题

它可以干净利落地处理身份验证、授权、企业会话管理和加密。
验证用户身份
用户访问权限控制,比如:1、判断用户是否分配了一定的安全角色。2、判断用户是否被授予完成某个操作的权限
在非 web 或 EJB 容器的环境下可以任意使用Session API
可以响应认证、访问控制,或者 Session 生命周期中发生的事件
可将一个或以上用户安全数据源数据组合成一个复合的用户 “view”(视图)
支持单点登录(SSO)功能
支持提供“Remember Me”服务,获取用户关联信息而无需登录

Shiro功能的框架

Authentication(认证):用户身份识别,通常被称为用户“登录”Authorization(授权):访问控制。比如某个用户是否具有某个操作的使用权限。Session Management(会话管理):特定于用户的会话管理,甚至在非web 或 EJB 应用程序。Cryptography(加密):在对数据源使用加密算法加密的同时,保证易于使用。

Realms:用于进行权限信息的验证,我们自己实现。Realm 本质上是一个特定的安全 DAO:它封装与数据源连接的细节,得到Shiro 所需的相关的数据。在配置 Shiro 的时候,你必须指定至少一个Realm 来实现认证(authentication)和/或授权(authorization)。

我们需要实现Realms的Authentication 和 Authorization。

Apache Shiro
这是Shiro 认证过程

Apache Shiro
这是授权过程