SpringBoot

发布时间 2023-03-23 09:57:45作者: wumm

.实验目的

1. Shiro的过滤链设计机制?

2. 结合自己的项目,设计一套Shiro安全验证方案,融合到模块内。

 

. 实验内容

.

 过滤链

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 提供了一个用于加密解密的工具包。

这个项目叫饭卡丢失办理:

个人负责模块登录模块,密码成功则挂失成功,密码失败则挂失失败同时弹窗提醒,饭卡里面的钱也可能会丢失,在密码登录模块同时也使用了密码加盐,加密,需要用户:认证 授权 加密