JWT进行请求头校验

JWT请求头校验

这里进行请求头校验,我们首先要添加过滤器JwtAuthenticationFilter,到SpringSecurity默认提供的过滤器链中。

为什么要添加过滤器?

是为了在请求到达控制器之前进行身份验证和授权处理Spring Security默认提供的过滤器链是一组预定义的过滤器,用于处理各种安全相关的任务,比如身份验证、授权、会话管理等。这些过滤器按照特定的顺序被调用,以确保请求的安全性。将JwtAuthenticationFilter加入到过滤器链中,可以使请求在进入控制器之前经过自定义的身份验证和授权逻辑。这样可以保护你的API免受未经身份验证或未授权的访问,确保只有合法的用户才能访问受保护的资源。

创建过滤器

创建filter包,在包下创建JwtAuthenticationFilter

这里就是先获取请求头内令牌的内容,再调用工具类的方法对令牌进行解析,方法内部校验令牌的合法与解析,将jwt令牌转化成UserDetails类型,用于往UsernamePasswordAuthenticationToken类中包装用户基本信息,再封装来自请求的详细身份验证信息,例如 IP 地址、会话 ID 等;最后,将认证对象设置到当前的安全上下文中,这样就代表验证完成了。再调下一个用过滤器方法。

这里toUser中密码随便写的原因是,我们不用password,在UsernamePasswordAuthenticationToken第二个参数是凭证,就是密码之类的,我们不需要,所以传null。

添加过滤器

回到SecurityConfiguration配置类,我们将他引入,并将其添加在验证用户名密码的过滤器之前

测试

创建TestController,进行简单测试

登录获取token

测试成功,不要忘了加Bearer 哦。

我们不输入值,发现不是json格式的,我们进行完善

完善

回到SecurityConfiguration配置类,添加配置,conf.accessDeniedHandler(this::accessDenied);是登录进去,但没有权限访问一些页面的处理器,其他没有什么要注意的,也可以把这些处理器写成一个,那样就清爽多了,但我懒,代码就不贴了。

在RestBean中又封装俩方法

相关推荐
redaijufeng4 分钟前
C++构造函数详解:从基础原理到实际应用
java·jvm·c++
yuzhiboyouye18 分钟前
VO一般java后端怎么转换成前端想要的数据
java·前端·状态模式
一 乐21 分钟前
学院教学工作量统计|基于java+ vue学院教学工作量统计管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·学院教学工作量统计系统
迷藏49426 分钟前
【无标题】
java·数据库·oracle
河阿里39 分钟前
Java包装类(Wrapper):自动装箱拆箱机制与类型转换的那些坑
java·开发语言
小江的记录本40 分钟前
【AI大模型选型指南】《2026年5月(最新版)国内外主流AI大模型选型指南》(企业版)
前端·人工智能·后端·ai作画·aigc·ai编程·ai写作
小宇的天下40 分钟前
Virtuoso 技巧---被锁定无法编辑的文件解锁
java
晓杰'1 小时前
Balatro后端进阶(1):自定义NestJS WebSocket Adapter实现消息拦截
后端·websocket·typescript·node.js·游戏开发·nestjs·wsadapter
微风欲寻竹影1 小时前
Java数据结构——栈(Stack)详解
java·开发语言·数据结构
Makoto_Kimur1 小时前
Java 后端面试场景题:页面刷新后一直转圈,应该怎么排查?
java·开发语言·面试