Java二阶知识点总结(九)Shiro和JWT

本文详细介绍了Shiro的三个核心组件(Subject,SecurityManager,Realm),Shiro的运行流程,以及JWT在身份验证中的作用,包括JWT的结构、Shiro与JWT的整合、单点登录流程和JWT的刷新与退出机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Shiro的三个核心组件

  • Subject:正与系统进行交互的人,或某一个第三方服务。所有 Subject 实例都被绑定到一个SecurityManager 上,其实就是用于获取外部数据的主体。
  • SecurityManager:Shiro 架构的心脏,用来协调内部各安全组件,管理内部组件实例,并通过它来提供安全管理的各种服务,负责和Shiro其他组件交互
  • Realm:shiro 是从 Realm 来获取安全数据(用户,角色,权限)。就是说 SecurityManager要验证用户身份,那么它需要从 Realm 获取相应的用户进行比较以确定用户身份是否合法;也需要从Realm 得到用户相应的角色/权限进行验证用户是否能进行操作;可以把 Realm 看成 DataSource,即安全数据 源。

2、Shiro的运行流程

  • 首先调用Subject.login(token)进行登录,他会委托给SecurityManager
  • SecurityManager负责真正的身份验证逻辑;它会委托给Authenticator进行身份验证;
  • Authenticator会把相应的token传入Realm,从Realm获取身份验证信息,如果没有就返回认证失败,有的话就继续执行操作。

3、Shiro认证策略

  • AtLeastOneSuccessfulStrategy:只要有一个(或更多)的 Realm 验证成功,那么认证将视为成功
  • FirstSuccessfulStrate
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值