shiro简介与功能
- Apache Shiro 是 Java 的一个安全(权限)框架;
- Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE 环境,也可以用在 JavaEE 环境;
- Shiro 可以完成:认证、授权、加密、会话管理、Web 集成、缓存等
- Authentication:身份认证/登录,验证用户是不是拥有相应的身份;
- Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通 JavaSE 环境,也可以是 Web 环境的;
- Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通 JavaSE 环境,也可以是 Web 环境的;
shiro架构
Shiro的核心概念有三个:Subject,SecurityManager 和 Realms。
- Subject:应用代码直接交互的对象是 Subject,也就是说 Shiro 的对外API 核心就是 Subject。Subject 代表了当前“用户”, 这个用户不一定是一个具体的人,与当前应用交互的任何东西都是 Subject,如网络爬虫,机器人等;与 Subject 的所有交互都会委托给 SecurityManage,Subject 其实是一个门面,SecurityManager 才是实际的执行者;
subject被Shiro描述为一个主体,对于web系统来说可以理解为用户,这里让我们来引入一段话来体现我们的这种思想
在考虑应用安全时,你最常问的问题可能是“当前用户是谁?”或“当前用户允许做 X 吗?”。当我们写代码或设计用户界面时,问自己这些问题很平常:应用通常都是基于用户故事构建的,并且你希望功能描述(和安全)是基于每个用户的。所以,对于我们而言,考虑应用安全的最自然方式就是基于当前用户。Shiro 的 API 用它的 Subject 概念从根本上体现了这种思考方式。
在应用程序中,我们可以在任何地方来访问我们的当前的对象
import org.apache.shiro.subject.Subject;
import org.apache.shiro.SecurityUtils;
.