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

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

延伸 · 阅读

精彩推荐
  • Java教程小米推送Java代码

    小米推送Java代码

    今天小编就为大家分享一篇关于小米推送Java代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...

    富贵稳中求8032021-07-12
  • Java教程Java实现抢红包功能

    Java实现抢红包功能

    这篇文章主要为大家详细介绍了Java实现抢红包功能,采用多线程模拟多人同时抢红包,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙...

    littleschemer13532021-05-16
  • Java教程Java BufferWriter写文件写不进去或缺失数据的解决

    Java BufferWriter写文件写不进去或缺失数据的解决

    这篇文章主要介绍了Java BufferWriter写文件写不进去或缺失数据的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望...

    spcoder14552021-10-18
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    这篇文章主要介绍了Java使用SAX解析xml的示例,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程xml与Java对象的转换详解

    xml与Java对象的转换详解

    这篇文章主要介绍了xml与Java对象的转换详解的相关资料,需要的朋友可以参考下...

    Java教程网2942020-09-17
  • Java教程20个非常实用的Java程序代码片段

    20个非常实用的Java程序代码片段

    这篇文章主要为大家分享了20个非常实用的Java程序片段,对java开发项目有所帮助,感兴趣的小伙伴们可以参考一下 ...

    lijiao5352020-04-06
  • Java教程升级IDEA后Lombok不能使用的解决方法

    升级IDEA后Lombok不能使用的解决方法

    最近看到提示IDEA提示升级,寻思已经有好久没有升过级了。升级完毕重启之后,突然发现好多错误,本文就来介绍一下如何解决,感兴趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java8中Stream使用的一个注意事项

    Java8中Stream使用的一个注意事项

    最近在工作中发现了对于集合操作转换的神器,java8新特性 stream,但在使用中遇到了一个非常重要的注意点,所以这篇文章主要给大家介绍了关于Java8中S...

    阿杜7482021-02-04