shiro框架
1.shiro简介
Apache Shiro是Java的一个安全框架。功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案
2.shiro组成
Authentication:身份认证/登录,验证用户是不是拥有相应的身份;
Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;
Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;
Cryptography:加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储;
3.shiro结构
3.1shiro外部结构
Subject:主体
SecurityManager:安全管理器
Realm:域
流程:
1、应用代码通过Subject来进行认证和授权,而Subject又委托给SecurityManager;
2、我们需要给Shiro的SecurityManager注入Realm,从而让SecurityManager能得到合法的用户及其 权限进行判断。
3.1shiro内部结构
Subject:主体
SecurityManager:相当于SpringMVC中的DispatcherServlet,它管理着所有Subject、且负责进行认证和授权、及会话、缓存的管理。
Authenticator:认证器,负责主体认证的,这是一个扩展点,如果用户觉得Shiro默认的不好,可以自定义实现
Authrizer:授权器,或者访问控制器,用来决定主体是否有权限进行相应的操作
Realm:可以有1个或多个Realm,可以认为是安全实体数据源,即用于获取安全实体的
SessionManager:管理Session需要有人去管理它的生命周期
SessionDAO:数据访问对象,用于会话的CRUD
CacheManager:缓存控制器,来管理如用户、角色、权限等的缓存的
Cryptography:密码模块,Shiro提高了一些常见的加密组件用于如密码加密/解密的
4.shiro的认证和授权
1.认证。认证指的是匹配用户名和密码,让平台认识你。
2.授权。授权指的是当前认证的用户进入平台能操作什么。
4.1shiro登录方式
4.1shiro中常用过滤器
1.**anon:**即Anonymous,匿名的,未认证(没有登录)的情况下也可以访问.
2.**perms:**即Permissions,权限,确定该用户的访问权限,没有该权限,则不能访问.
3.**authc:**即Authentication,认证,认证(登录)的情况下才可以访问.
4.2shiro中的jsp标签
来源:oschina
链接:https://my.oschina.net/u/4386991/blog/4329552