微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

详解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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐