Shiro
Shiro简介
Apache Shiro是java的一个权限框架。
shiro的架构与功能介绍
(1)认证与授权的基本概念:
- 安全实体:系统需要保护的具体对象
- 权限:系统相关的功能操作,如CRUD
(2)shiro的四大核心功能:身份验证(Authentication)、授权(Authorization)、加密(Cryptography)、会话管理(Session Manager)
- 身份验证(登录):验证用户是否具有相应的身份。
- 授权:验证某个已经认证的用户是否具有相应权限。即用户是否具有相应的权限去做某事,验证某个用户是否拥有某个角色。如,某用户是否有权限去对数据进行删除、修改。
- 加密:保证数据的安全性。比如密码要加密后再存进数据库,而不是明文存储。
- 会话管理:用户登录后就是一次会话,退出之前所有的信息都存储在这个会话中。在普通javase和web环境中都存在会话管理。
(3)Shiro的三个核心组件:Subject, SecurityManager 和 Realms.
- Subject:主体,代表当前用户,这个用户不是指一个人,而是与当前应用交互的各种资源。所有的 Subject 都绑定到SecurityManager上,与 Subject 所有的交互都委托给SecurityManager。
可以说 Subject 是一个门面,SecurityManager才是实际执行者。
- SecurityManager:安全管理,所有与安全有关的操作都会与他交互,他还管理所有的 Subject,SecurityManager是Shiro的核心。
- Realm:域。Shiro从realm获取相应数据(如:用户、角、权限)。SecurityManager如果需要给用户验证身份,需要从realm这里拿到需。
可以把realm看做是dataSource,安全数据源。