首页 > 编程语言 >【中州养老】《重点!!》 项目学习心得图解day06(一)权限认证-项目集成SpringSecurity(黑m程序员java项目)

【中州养老】《重点!!》 项目学习心得图解day06(一)权限认证-项目集成SpringSecurity(黑m程序员java项目)

时间:2025-01-06 10:28:51浏览次数:3  
标签:令牌 java 项目 day06 用户 线程 管理器 认证 权限

Day06 权限认证-项目集成SpringSecurity

文章目录

一、登录功能实现

在这里插入图片描述

二、LoginServiceImpl的login方法思路

功能描述

  1. 用户认证:
    验证用户提供的用户名和密码是否正确。
    使用 Spring Security 的 AuthenticationManager 来完成认证。
  2. 加载用户信息:
    查询用户的角色和资源权限信息,并将其封装在返回对象中。
  3. 生成 Token:
    生成一个用户令牌(userToken)和一个 JWT 令牌(jwtToken)。
    将这些令牌存储在 Redis 中,用于后续的权限校验和续期。
  4. 返回用户数据:
    返回用户数据(包括用户角色、资源权限和令牌)以便前端使用。
    在这里插入图片描述

三、将用户数据存入线程中

思路分析

  • 当用户登录成功以后,会下发一个token给前端
  • 以后用户每次请求都会携带这个token来进行验证
  • 当用户请求其他业务需要当前用户信息的时候,可以直接获取当前登录人信息,比如:创建数据需要知道创建人

所以我们可以使用ThreadLocal来进行存储当前请求(线程)的用户数据,它有两个特点

  • 线程之间的隔离
  • 同一个线程数据共享
    在这里插入图片描述

四、自定义授权管理器

JwtAuthorizationManager 是一个授权管理器,它实现了 Spring Security 的 AuthorizationManager 接口,用于处理用户的授权逻辑。
核心功能
JwtAuthorizationManager 的主要职责是:

  • 验证用户的 userToken 和 jwtToken。
  • 检查用户是否被剔除。
  • 根据请求的路径和用户权限,决定是否允许用户访问资源。
  • 处理jwtToken 的续期逻辑,确保令牌在接近失效时可以延长有效期。

在这里插入图片描述

本人水平有限,有错的地方还请批评指正。

什么是精神内耗?
简单地说,就是心理戏太多,自己消耗自己。
所谓:
言未出,结局已演千百遍;
身未动,心中已过万重山;
行未果,假想灾难愁不展;
事已闭,过往仍在脑中演。

标签:令牌,java,项目,day06,用户,线程,管理器,认证,权限
From: https://blog.csdn.net/Shine19/article/details/144926595

相关文章

  • JavaScript 的简写技巧
    JavaScript是一门强大且灵活的语言,拥有丰富的特性和语法糖。分享下16个最常用的JavaScript的简写技巧,掌握它们可以让我们编写出更简洁、更优雅的代码,并显著提升开发效率(增加摸鱼时间)。1.三元运算符简化条件判断//传统写法letresult;if(someCondition){result='y......
  • 项目管理不再是难题:一揽子解决方案助你轻松前行
    一、项目管理的核心要素●范围管理:明确项目的范围和目标,确保项目的各个方面都在预定的范围内。范围管理包括范围定义、范围确认、范围控制等方面的工作。●时间管理:通过合理的时间安排和控制,确保项目按时完成。时间管理包括进度计划、进度控制、进度评估等方面的工作。●成......
  • java卷上天,转行可以干什么?
    ......
  • java卷上天,转行可以干什么?
    ......
  • Gitlab误删用户导致项目丢失莫慌.240109
    Gitlab让小朋友不小心把离职员工的账号给删了,可是离职员工有好几个项目都是他是owner,造成Gitlab上项目全部丢失。遇到这种情况,莫慌。一般,本地都有完整的Git备份,离职员工走了,肯定他的主管有整套代码。解决方式很简单,跟着我来,就不会错。但是建议,创建项目,owner最好是管理员创建,......
  • 《Java核心技术II》用flatMap构建Optional值的函数
    用flatMap构建Optional值的函数假设你有一个可以产生Optional对象的方法f,并且目标T具有一个产生Optional对象的方法g。都是普通方法,可以通过调用s.f().g()将它们组合起来。这种组合无法工作,s.f()是Optional而不是T.需要调用:Optionalresult=s.f().flatMap(T::g);s.f()存......
  • Spring cloud 微服务 Gateway 项目中使用
    文章目录概述项目引入pom文件yaml文件配置全局过滤器跟局部自定义过滤器全局过滤器局部自定义过滤器概述SpringCloudGateway是SpringCloud生态系统中的一个关键组件,用于实现API网关功能。它基于SpringFramework5、ProjectReactor和SpringBoo......
  • 将项目发布到 Maven 中央仓库
    将项目发布到Maven中央仓库前言本文基于官方文档https://central.sonatype.org/publish/publish-guide/编写。发布步骤:创建账号创建用户Token创建命名空间配置GPG配置项目发布注意事项:发布成功的项目无法修改或者删除准备阶段创建账号已有Google或者Gi......
  • 26.Java Lock 接口(synchronized 关键字回顾、可重入锁快速入门、Lock 对比 synchroniz
    一、synchronized关键字1、synchronized关键字回顾synchronized是Java中的关键字,是一种同步锁,它修饰的对象有以下几种修饰一个类:其作用的范围是synchronized后面括号括起来的部分,作用的对象是这个类的所有对象修饰一个方法:被修饰的方法称为同步方法,其作用的范......
  • 基于java的SpringBoot/SSM+Vue+uniapp的德云社票务系统的详细设计和实现(源码+lw+部署
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......