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快速开发后端脚手架

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • bzero函数C语言_zeros函数

    bzero函数C语言_zeros函数原型:externvoidbzero(void*s,intn);  用法:#include  功能:置字节字符串s的前n个字节为零且包括‘\0’。  说明:bzero无返回值,并且使用strings.h头文件,strings.h曾经是posix标准的一部分,但是在POSIX.1-2001标准里面,这些函数被标记为了遗留函数而不推荐使用。在POSIX.

    2022年10月12日
  • 税控盘开票助手Excel导入或ERP导入开票明细接口使用说明(使用手册)

    税控盘开票助手Excel导入或ERP导入开票明细接口使用说明(使用手册)税控盘开票助手使用说明(使用手册)写这遍文章的目的是方便以后个人使用,做个笔记记录。首先我来说一下它是做什么用的,它的主要作用是把用户的开票数据,Excel数据、ERP系统导入到税控盘开票软件中。解决企业开票明细多、开票数据量大、手工输入明细慢、开票赋码不方便等问题,通过使用开票助手可以提高开票人员工作效果,工作产能,减少手工输入带来的差错。可以使用的功能有:开票明细

  • navicat12注册机生成相应注册码

    navicat12注册机生成相应注册码转自:http://blog.sina.com.cn/s/blog_1885d23df0102yjw9.html navicat注册机是针对nacicat公司开发的软件而制作的一款激活工具,能够生成相对应的注册码和激活码,不仅能够支持激活nacicat11系列软件,同时可以激活nacicat12系列软件,具体可以激活navicat12formysql、navicat12fo…

    2022年10月13日
  • javascript实例教程(17) 使用javascript的数学函数

    javascript实例教程(17) 使用javascript的数学函数 javascript实例教程(17)使用javascript的数学函数在JavaScript中,数学方法可以分成以下几类:constans(常数)、powerfunctions(乘方函数)、trigonometicfunctions(三角函数)、roundingfunctions(舍入函数)以及randomnumbers(随机数字)。下面逐个说明:常数和乘方函数Math.E

  • Idea设置快捷键_打开快捷键设置

    Idea设置快捷键_打开快捷键设置六、设置快捷键(Keymap)设置快捷为Eclipse的快捷键2.通过快捷键功能修改快捷键设置3.通过指定快捷键,查看或修改其功能4.导入已有的设置点击0K之后,重启IDEA即可。5.常用快捷键七、关于模板(Templates)(Editor–LiveTemplates和Editor–General–PostfixCompl…

  • bit、byte、位、字节、汉字的关系[通俗易懂]

    bit、byte、位、字节、汉字的关系[通俗易懂]字节(Byte):通常将可表示常用英文字符8位二进制称为一字节。一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间.符号:英文标点2占一个字节,中文标点占两个字节.1字节(Byte)=8位(bit)比特(Bit),亦称二进制位。新港台:位元比特指二进制中的一位,是二进制最小信息单位。1比特就是1位  字节    字节(Byte):字节是通过网络传

    2022年10月25日

发表回复

您的电子邮箱地址不会被公开。

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