【项目实战】Shiro入门介绍

一、Shiro与Security 有什么不同?

在这里插入图片描述
在这里插入图片描述

二、Shiro核心概念

安全实体:系统需要保护的具体对象数据
权限:系统相关的功能操作,例如基本的CRUD
Authentication:身份认证/登录
Authorization:授权
Session Manager:会话管理
Cryptography:加密,保护数据的安全性
Concurrency:shiro支持多线程应用的并发验证
Testing:提供测试支持
Run As:允许一个用户假装为另一个用户
Remember Me:记住我,这个是非常常见的功能

三、Shiro 三个核心组件: Subject+SecurityManager+Realm

在这里插入图片描述

3.1 Subject(主体)

代表了当前“用户”,这个用户不一定是一个具体的人,与当前应用交互的任何东西都是Subject,如爬虫、机器人等;即一个抽象概念;
所有Subject都绑定到SecurityManager,与Subject的所有交互都会委托给SecurityManager;
可以把Subject认为是一个门面;SecurityManager才是实际的执行者。

3.2 SecurityManager(安全管理器)

即所有与安全有关的操作都会与SecurityManager交互;且它管理着所有Subject;
可以看出它是Shiro的核心,
SecurityManager相当于spring mvc中的dispatcherServlet前端控制器。

3.3 Realm(域)

Shiro从Realm获取安全数据(如用户、角色、权限),就是说SecurityManager要验证用户身份,那么它需要从Realm获取相应的用户进行比较以确定用户身份是否合法;也需要从Realm得到用户相应的角色/权限进行验证用户是否能进行操作;

可以把Realm看成DataSource,即安全数据源。

四、Shiro+JWT组合

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wstever/article/details/130961130