JWT进行请求头校验

简介: JWT进行请求头校验

JWT请求头校验

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

为什么要添加过滤器?

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

创建过滤器

创建filter包,在包下创建JwtAuthenticationFilter

YI8VZA@LA@Z2UT2Y8%~)$MA.png

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

35TK_2D91{(4G0{SPA6B]MS.png

}6Q0_Q)8$KN]Y2O(WJ[1KJM.png

AZJ5J`1IL[8R`}GJ8BTR~~D.png

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

I]RYAF}G@[GI3HW8MPZTJ8J.png

添加过滤器

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

[$@K_Q4T0QCJ1QGHQM1V(_T.png

测试

创建TestController,进行简单测试

A7@5(]2XCXP041D039`Q93V.png

登录获取token

M~[N{SJS8}Q9@QBRR38GRAJ.png

ST5FB2_T$$UQ02%IZ({X{3C.png

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

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

T[TJEC2D69)6UR5GYX$Q(XB.png

完善

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

IR]RAL26U%L`~]W)88R(S~H.png

3N6$GMIUOXBD@6HD96K97C8.png

在RestBean中又封装俩方法

@@Z%V$KPJ@1J0X89_{S8]O0.png

目录
相关文章
|
4月前
|
存储 JSON 算法
登录认证-登录校验-会话技术方案选择和对比(cookie、session和JWT令牌)
登录认证-登录校验-会话技术方案选择和对比(cookie、session和JWT令牌)
|
8月前
|
存储 JSON 算法
JWT令牌生成与校验
JWT令牌生成与校验
297 0
|
12月前
|
存储 JSON NoSQL
手把手教大家在 gRPC 中使用 JWT 完成身份校验
手把手教大家在 gRPC 中使用 JWT 完成身份校验
|
JSON 算法 安全
【SpringBoot技术指南】「权限校验专区」Shiro整合JWT授权和认证实现
【SpringBoot技术指南】「权限校验专区」Shiro整合JWT授权和认证实现
268 0
|
前端开发
【在线教育项目】整合JWT权限校验,登录成功生成token
【在线教育项目】整合JWT权限校验,登录成功生成token
111 0
【在线教育项目】整合JWT权限校验,登录成功生成token
|
存储 安全 小程序
ThinkPHP6+JWT 中间件校验Token时效性
一、涉及到的知识点 接口验签安全机制封装到服务层 接口调用须使用验签 接口验证封装到中间件
1454 0
|
24天前
|
安全 数据安全/隐私保护
Springboot+Spring security +jwt认证+动态授权
Springboot+Spring security +jwt认证+动态授权
|
2月前
|
前端开发 Java Spring
SpringBoot通过拦截器和JWT令牌实现登录验证
该文介绍了JWT工具类、匿名访问注解、JWT验证拦截器的实现以及拦截器注册。使用`java-jwt`库生成和验证JWT,JwtUtil类包含generateToken和verifyToken方法。自定义注解`@AllowAnon`允许接口匿名访问。JwtInterceptor在Spring MVC中拦截请求,检查JWT令牌有效性。InterceptorConfig配置拦截器,注册并设定拦截与排除规则。UserController示例展示了注册、登录(允许匿名)和需要验证的用户详情接口。
182 1
|
2月前
|
存储 JSON Java
spring boot3登录开发-1(整合jwt)
spring boot3登录开发-1(整合jwt)
60 1
|
3月前
|
开发框架 安全 Java
【Java专题_01】springboot+Shiro+Jwt整合方案
【Java专题_01】springboot+Shiro+Jwt整合方案