详解springboot shiro jwt实现权限管理

为什么使用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的,如果没有放行就访问不到接口

在这里插入图片描述

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

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

在这里插入图片描述

在这里插入图片描述

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

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

在这里插入图片描述

在axios中传入token

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

最后 别忘记导入依赖

在这里插入图片描述

在这里插入图片描述

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

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

以上就是详解springboot shiro jwt实现权限管理的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java