服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - 详解springboot shiro jwt实现权限管理

详解springboot shiro jwt实现权限管理

2022-01-06 12:12CingSuan Java教程

为什么使用jwt呢,因为可以通过URL,POST参数或者在HTTP header发送,因为数据量小,传输速度也很快。本篇通过具体代码来进行详情解析,对大家的学习或工作具有一定的参考借鉴价值

springboot + shiro + jwt (详情解析+代码实现)加密接口 设置权限

首先需要把shiro的几个配置类给下载好(我已经把需要的配置类给放到了github和网盘之中)
先讲完各个配置类的作用,后面讲具体流程

ShiroConfig.java 类主要是设置了过滤器 和shiro自己的session,假如这个类没有放行就只有token才能访问后端接口

UserRealm.java 类主要是检测用户权限和授予权限,对用户名的验证

JWTFilter.java 类主要是防止别人访问你的接口,假如有人想直接访问你的接口首先检查你的token有没有在到ShiroConfig中看有没有放行假如两项都没有就无权访问后端的接口

MDSUtils.java 加密前端传入的密码,以及设置加密方式

JWTUtils.java 生成token,和设置过期时间

好了,这就是token几个主要的配置类
下面是实现的整个流程

1.首先前端登录访问后端登录接口,要给登录的请求地址放行(在没有登录的情况下是没有token的,如果没有放行就访问不到接口

详解springboot shiro jwt实现权限管理

这是给需要访问的路径放行

2.放行之后进入controller 传入用户名和密码到service中的login(注:(login())方法在没有在网盘中需要自己写)方法中 然后拿传入的账号(注:只有账号)在数据库中进行查询假如有此账号需要在数据库中获取用户的(盐:此盐非彼盐,这相当于对数据加密的密钥) 以及用户的信息,如果没有这个用户则直接抛出错误

详解springboot shiro jwt实现权限管理

详解springboot shiro jwt实现权限管理

3.拿到用户的信息后,把密码拿出来用用户信息里面的盐进行加密,然后将连个密码进行比对,比对成功就生成一个token携带这个用户信息返回出去到前端

4.前端拿到token后登录成功跳转页面并将token储存到本地并将token放到请求头中,前端登录成功后需要到后端获取数据每一次都需要携带这个token要不然就会被过滤器给拦掉

详解springboot shiro jwt实现权限管理

在axios中传入token

详解springboot shiro jwt实现权限管理

请求头中有了token就不需要配置过滤器可直接在realm类中进行授权并对数据的查询

详解springboot shiro jwt实现权限管理

详解springboot shiro jwt实现权限管理

详解springboot shiro jwt实现权限管理

最后 别忘记导入依赖

详解springboot shiro jwt实现权限管理

详解springboot shiro jwt实现权限管理

博主白天工作没有时间回复,晚上可做出回答
三天一期java技术
可帮忙找bug
可评论需要的技术可能下期会进行讲解

这是配置文件的位置
链接:https://pan.baidu.com/s/1k6MhGTOfskjRcQH_XppRcA
提取码:gdb2

到此这篇关于详解springboot shiro jwt实现权限管理的文章就介绍到这了,更多相关springboot shiro jwt 权限管理内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/luo1638720206/article/details/120314438

延伸 · 阅读

精彩推荐