apache shiro框架介绍
官网:shiro.apache.org
Apache Shiro™是一个功能强大且易于使用的Java安全框架,可执行身份验证,授权,加密和会话管理。借助Shiro易于理解的API,您可以快速轻松地保护任何应用程序 - 从最小的移动应用程序到最大的Web和企业应用程序。
以下是你可以用 Apache Shiro所做的事情:
验证用户
对用户执行访问控制,如:判断用户是否拥有角色admin。判断用户是否拥有访问的权限
在任何环境下使用 Session API。例如CS程序。
可以使用多个用户数据源。例如一个是oracle用户库,另外一个是mysql用户库。
单点登录(SSO)功能。
“Remember Me”服务 ,类似购物车的功能,shiro官方建议开启。
- 下载文件:
- shiro框架的核心功能:认证,授权,会话管理,加密
- Authentication:身份验证,简称“登录”。
- Authorization:授权,给用户分配角色或者权限资源
- Session Management:用户session管理器,可以让CS程序也使用session来控制权限
- Cryptography:把JDK中复杂的密码加密方式进行封装。
- shiro认证流程:
Application Code:应用程序代码,由开发人员开发
Subject:框架提供的接口,代表当前用户对象
SecurityManager:框架提供的接口,代表安全管理器对象
Realm:可以开发人员编写,框架也提供一些,类似于DAO,用于访问权限数据
1.Subject(org.apache.shiro.subject.Subject): 简称用户
2.SecurityManager(org.apache.shiro.mgt.SecurityManager) SecurityManager是shiro的核心,协调shiro的各个组件
3.Authenticator(org.apache.shiro.authc.Authenticator): 登录控制
Authentication Strategy (org.apache.shiro.authc.pam.AuthenticationStrategy) 如果存在多个realm,则接口 AuthenticationStrategy会确定什么样算是登录成功(例如,如果一个Realm成功,而其他的均失败,是否登录成功?)。
4.Authorizer(org.apache.shiro.authz.Authorizer) : 决定subject能拥有什么样角色或者权限。
5.SessionManager(org.apache.shiro.session.SessionManager) : 创建和管理用户session。通过设置这个管理器,shiro可以在任何环境下使用session。
6.CacheManager(org.apahce.shiro.cache.CacheManager) : 缓存管理器,可以减少不必要的后台访问。提高应用效率,增加用户体验。
7.Cryptography(org.apache.shiro.crypto.*) : Shiro的api大幅度简化java api中繁琐的密码加密。
8.Realms(org.apache.shiro.realm.Realm) : 程序与安全数据的桥梁,访问权限数据