SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架

SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架



关注我们,设为星标,每天7:30不见不散,架构路上与您共享


回复”架构师“获取资源

一、背景


前后端分离已经成为互联网项目开发标准,它会为以后的大型分布式架构打下基础。SpringBoot使编码配置部署都变得简单,越来越多的互联网公司已经选择SpringBoot作为微服务的入门级微框架。

Mybatis-Plus是一个 Mybatis 的增强工具,有代码生成器,并且提供了类似hibernate的单表CRUD操作,又保留了mybatis的特性支持定制化 SQL。

Apache Shiro是一款强大易用的Java安全框架,Java官方推荐使用Shiro,它比Spring Security更简单易用,Spring自己的系列Spring side4也把权限扩建换成Shiro了。

现在API越来越流行,如何安全保护这些API?JSON Web Tokens(JWT)能提供基于JSON格式的安全认证。JWT可以跨不同语言,自带身份信息,并且非常容易传递。

二、项目特性


1.自定义@Log注解自动记录日志到数据库。

2.自定义@Pass注解接口不用进行认证身份。

3.使用JSONObject统一获取body请求参数,减少实体类的数量。完成自定义@ValidationParam注解验证请求参数是否为空。

SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架

4.使用bcrypt算法加密密码,著名代码托管网站Github和美国军方防火墙同样采用此算法,靠bcrypt算法会成功保住密码强度不算很高的大部分账户。

5.搭配Shiro注解配置权限,高度灵活,提供按钮级别的权限控制,后端接口只验证权限,不看角色。用自定义@CurrentUser注解获取当前登录用户,Controlle层统一异常处理:

SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架

6.用SpringAOP切面编程进行声明式事务,过滤请求参数,防止XSS攻击。

7.使用POST请求登录返回token和权限信息(service层增删改方法命名规范会自动加上事物),保证请求无状态,返回实体如果属性为空不显示。

SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架

三、程序逻辑


1.填写用户名密码用POST请求访问/login接口,返回token令牌等信息,失败则直接跳转401错误页面。

2.在之后需要验证身份的请求的Headers中添加Authorization和登录时返回的token令牌。

3.服务端进行token认证,失败跳转401页面。

4.用JWT做认证(登录),Shiro做授权。

四、运行项目


项目结构:

SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架

  • 通过git下载源码,本项目基于JDK1.8

  • 采用Maven项目管理,模块化,导入IDE时直接选定liugh-parent的pom导入

  • 创建数据库liugh,数据库编码为UTF-8,执行liugh.sql文件,初始化数据

  • 修改application-dev.properties,更新MySQL账号和密码

  • Eclipse、IDEA运行SpringbootApplication.java,则可启动项目。或在liugh-parent目录下运行命令mvn clean package,然后在liugh-web/target目录下运行java -jar liugh-web.jar命令

  • 启动一个redis服务

  • 访问登录接口:localhost:8081/api/login

  • 账号密码:13888888888/123456
    -获取token访问其他接口

注意!!!!!访问的接口url统一会加上/api/v1;编译器请安装lombok插件,不然会报红

运行截图:

SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架

彩蛋:项目注释完整,并且自定义了启动图案~

如何获取?

1. 识别并关注公众号「Java架构师社区」;
2. 在下面公众号后台回复关键字「
113」。


   
   
  
  
     
     
    

SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架


   
   
  
? 长按上方二维码 2 秒
回复「 113 」即可获取资料

SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架

到此文章就结束了。如果今天的文章对你在进阶架构师的路上有新的启发和进步,欢迎转发给更多人。欢迎加入架构师社区技术交流群,众多大咖带你进阶架构师,在后台回复“加群”即可入群。








这些年小编给你分享过的干货

《IDEA 2020.2 最新破解教程,有效期到2089年

Kubernetes的前世今生

你们公司的架构师是什么样的?

《Docker与CI持续集成/CD持续部署》

《还有40天,Java 11就要横空出世了》

《JDK 10 的 109 项新特性》

《学习微服务的十大理由》

《进大厂必须掌握的50个微服务面试问题》


SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架

SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架

转发在看就是最大的支持❤️

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/2488.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PHP如何解决网站大流量与高并发的问题(二)「建议收藏」

    PHP如何解决网站大流量与高并发的问题(二)

    2022年2月9日
    161
  • 获取main方法的返回值「建议收藏」

    获取main方法的返回值「建议收藏」通常main是不返回内容。但是实在要返回。也只能返回状态码给操作系统。System.exit(1);//异常System.exit(0);//正常当然也可以定以很多其他用于表示不同状态。至于如何从操作系统中取得这些状态码:Linux:echo$?  上一个执行命令之后的返回状态码Windows:要在windows系统下查看状态,键入C:direct

    2022年5月18日
    92
  • redis有效时间设置及时间过期处理_查看redis状态

    redis有效时间设置及时间过期处理_查看redis状态redis是在内存中进行缓存的,我们在设置redis缓存时,可以设置下过期时间。那么在设置时间到期后redis是如何进行数据删除的。redis清理过期数据。定期清理+惰性清理定期删除:redis数据库默认每隔100ms就会进行随机抽取一些设置过期时间的key进行检测,过期则删除。惰性删除:定期删除还没有来得及删除,就被程序请求到的一个过期key,redis会先检测key是否,过期,如果过期则删…

    2022年9月26日
    1
  • navicat12数据库同步

    navicat12数据库同步开发过程中一般会分开发环境,测试环境,生成环境,下面介绍一种方式同步测试环境数据到本地。@[toc]同步表结构打开navicat选择结构同步选择源数据库和目标数据库点击比对查看数据库差异选择要同步的差异信息,默认全选点击部署会展示部署脚本点击运行,会执行脚本,同步数据库可以点击重新比对,查询是否同步成功同步表数据打开navicat选择数据同步选择源数…

    2022年10月15日
    2
  • 深入理解java虚拟机第四版PDF下载_深入理解java虚拟机 pdf

    深入理解java虚拟机第四版PDF下载_深入理解java虚拟机 pdfJVM架构图:类装载器:沙箱安全机制:ExecutionEngine执行引擎负责解释命令,提交操作系统执行。NativeMethodStack本地方法栈:运行本地方法的栈ProgramCounterRegister即PC寄存器(程序计数器)程序计数器底层是bytecodepointer(bcp)即字节码指针PC寄存器是用来存储指向下一条指令的地址,也即将要执行的指令代码。由执行引擎读取下一条指令。1.它是一块很小的内存空间,几乎可以忽略不计。也是运行速度最快的存储区域…

    2022年10月9日
    2
  • PyCharm激活码永久有效PyCharm2021.2.3激活码教程-持续更新,一步到位「建议收藏」

    PyCharm激活码永久有效PyCharm2021.2.3激活码教程-持续更新,一步到位「建议收藏」PyCharm激活码永久有效2021.2.3激活码教程-Windows版永久激活-持续更新,Idea激活码2021.2.3成功激活

    2022年6月19日
    196

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号