|
一.
过滤链
1. 过滤链是有顺序的,从上至下
2. 格式:地址匹配 认证规则
anno 匿名访问
user 请求认证,被rememberMe后,无需认证(通用界面)
authc 身份验证,敏感界面
推荐过滤链:
二.
Shiro 的概述
1. shiro 作用
1)认证 2)授权 3)加密 4)会话管理 5)与 Web 集成 6)缓存
2. shiro 架构
Shiro 主要组件包括:Subject,SecurityManager,Authenticator,Authorizer,SessionManager,CacheManager,Cryptography,Realms。
Subject(用户) Subject即主体,外部应用与subject进行交互,subject记录了当前的操作用户,将用户的概念理解为当前操作的主体。Subject 可以是一个人,但也可以是第三方服务、守护进程帐户、时钟守护任务或者其它–当前和软件交互的任何事件。 在程序任意位置可使用:Subject currentUser = SecurityUtils.getSubject() 获取到subject主体对象,类似 Employee user = UserContext.getUser() ;
SecurityManager(安全管理器) 它是 shiro 功能实现的核心,负责与后边介绍的其他组件(认证器/授权器/缓存控制器)进行交互,实现 subject 委托的各种功能。有点类似于SpringMVC 中的 DispatcherServlet 前端控制器,负责进行分发调度。
Realms(数据源) Realm 充当了 Shiro 与应用安全数据间的“桥梁”或者“连接器”。;可以把Realm 看成 DataSource,即安全数据源。执行认证(登录)和授权(访问控制)时,Shiro 会从应用配置的 Realm 中查找相关的比对数据。以确认用户是否合法,操作是否合理。
Authenticator(认证器) 用于认证,从 Realm 数据源取得数据之后进行执行认证流程处理。
Authorizer(授权器) 用户访问控制授权,决定用户是否拥有执行指定操作的权限。
SessionManager (会话管理器) Shiro 与生俱来就支持会话管理,这在安全类框架中都是独一无二的功能。即便不存在 web 容器环境,shiro 都可以使用自己的会话管理机制,提供相同的会话 API。
CacheManager (缓存管理器) 用于缓存认证授权信息等。
Cryptography(加密组件) Shiro 提供了一个用于加密解密的工具包。
这个项目叫饭卡丢失办理:
个人负责模块登录模块,密码成功则挂失成功,密码失败则挂失失败同时弹窗提醒,饭卡里面的钱也可能会丢失,在密码登录模块同时也使用了密码加盐,加密,需要用户:认证 授权 加密
|