美文网首页
认证授权 4 Spring Security + JWT(总览与

认证授权 4 Spring Security + JWT(总览与

作者: _River_ | 来源:发表于2021-05-06 09:55 被阅读0次
1:项目代码结构 总览
绿色:最核心的代码
JwtTokenUtils:JwtToken的创建与使用 
JwtAuthorizationFilter:自定义鉴权过滤器 获取Token信息到SecurityContextHolder
SecurityConfiguration:Spring-Security 使 SpringMVC 集成了 Spring Security 的 web 安全

红色:实体 常量 枚举
蓝色:调用主逻辑
黄色:Spring-Security的一些源码(可以不看)
2:项目逻辑 总览
JWT 实际上就是存储用户信息的Token
Spring Security 实际上就是就SpringMvc集成Web安全的一种鉴权手段

1:创建用户  用户信息存放到Mysql中
2:用户登录 JwtTokenUtils 使用用户信息 创建JWT 并存储到Redis中
3:用户调用  不放行接口  JwtAuthorizationFilter 把JWT的部分用户信息存储到SecurityContextHolder
4:SecurityContextHolder 中 用户信息提供给全局使用
5:SecurityConfiguration  进行真正意义上的鉴权过滤  确保仅该用户具有相关权限时才能调用接口
6:用户退出登录  在Redis删除对应的中JWT信息
3:注册用户
请求路径:http://127.0.0.1:7001/api/users/sign-up
请求方式:Post请求 设置为JSON请求格式
请求参数:{"userName":"HSJ","fullName":"我的昵称","password":123456}

Mysql数据库插入数据


4:用户登录
请求路径:http://127.0.0.1:7001/api/auth/login
请求方式:Post请求 设置为JSON请求格式
请求参数:{"userName":"HSJ","password":123456,"rememberMe":true}

Redis已经插入JWT数据
5:不带Token访问需要进行身份验证的资源
 请求路径:http://127.0.0.1:7001/api/users/find/allUser
 请求方式:Get请求 表单
 请求参数:current=1 (当前页)   size  =1 (每页显示条数)
 请求头:无
 
  注意:状态码为401 不提供Token或者Token错误
6:携带正确的有权限的 Token访问需要进行身份验证的资源
 请求路径:http://127.0.0.1:7001/api/users/find/allUser
 请求方式:Get请求 表单
 请求参数:current=1 (当前页)   size  =1 (每页显示条数)
 请求头:Authorization   
            Bearer 
            eyJ0eXBlIjoiSldUIiwiYWxnIjoiSFMyNTYifQ.eyJpc3MiOiJIZVN1aUppbiIsInJvbCI6IlJPTEVf
            VVNFUixST0xFX01BTkFHRVIiLCJqdGkiOiIxIiwic3ViIjoiSFNKIiwiaWF0IjoxNjIwMTUxMzA
            4LCJleHAiOjE2MjA3NTYxMDh9.XL96qmlpkJCN6_wvwwMkATSvqT8xhceeZ_tZ298SjAM
7:携带正确的但没权限的 Token访问需要进行身份验证的资源
请求路径:http://127.0.0.1:7001/api/users/find/allUser
 请求方式:Post请求 设置为JSON请求格式
 请求参数:{"userName":"HSJ","fullName":"我是修改昵称啊"}
 请求头:Authorization   
            Bearer 
            eyJ0eXBlIjoiSldUIiwiYWxnIjoiSFMyNTYifQ.eyJpc3MiOiJIZVN1aUppbiIsInJvbCI6IlJPTEVf
            VVNFUixST0xFX01BTkFHRVIiLCJqdGkiOiIxIiwic3ViIjoiSFNKIiwiaWF0IjoxNjIwMTUxMzA
            4LCJleHAiOjE2MjA3NTYxMDh9.XL96qmlpkJCN6_wvwwMkATSvqT8xhceeZ_tZ298SjAM
 
 注意:状态码为403 代表该token 无权限进行该操作

项目连接

请配合项目代码食用效果更佳:
项目地址:
https://github.com/hesuijin/hesuijin-study-project
Git下载地址:
https://github.com.cnpmjs.org/hesuijin/hesuijin-study-project.git

spring-security-jwt-module 项目模块下                  

相关文章

网友评论

      本文标题:认证授权 4 Spring Security + JWT(总览与

      本文链接:https://www.haomeiwen.com/subject/ntnkdltx.html