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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • win10开机“正在准备自动修复”,且无法修复你的电脑「建议收藏」

    win10开机“正在准备自动修复”,且无法修复你的电脑「建议收藏」昨天一顿操作,先是快速启动,后来又觉得快速启动没用又关掉了,第二天过来,发现电脑开不起来了,进到里面怎么自动修复不得行,网上大多数的答案是重装,经过半天努力摸索,终于修好了,原理就不想深究了。准备:一个U盘,并且制作PE系统。1、电脑的系统启动设置在U盘启动,进入PE系统2、打开分区工具DiskGenius点硬盘点重建主引导记录MBR(一般在开始菜单都有)3、再返…

    2022年4月20日
    108
  • 男生pun是什么意思_pun怎么读

    男生pun是什么意思_pun怎么读PUN介绍入门PhotonUnityNetworking(首字母缩写PUN)是一个Unity多人游戏插件包。它提供了身份验证选项、匹配,以及快速、可靠的通过我们的Photon后端实现的游戏内通

    2022年8月6日
    9
  • vs 注释快捷键_VS2010快捷键

    vs 注释快捷键_VS2010快捷键在VisualStudioIDE中使用快捷键注释代码,无论是行注释还是块注释,第一步一定是选中要注释的内容(取消注释同样要先选中)!当然,如果是行注释,不必选取整行,将光标定位到该行即可!下面整理一下VisualStudioIDE中行注释和块注释的快捷键,以及快捷键的查看与修改。行注释行注释有以下两种方式!方式一:注释:Ctrl+K,Ctrl+C取消:Ctrl+K,Ctrl+U方式二:注释和取消都是这组快捷键:Ctrl+K,Ct…

    2022年8月15日
    6
  • plugins webpack_webplugin插件无法安装

    plugins webpack_webplugin插件无法安装plugin插件是webpack的支柱功能。webpack自身也是构建于你在webpack配置中用到的相同的插件系统之上!插件目的在于解决loader无法实现的其他事。常用的插件

    2022年7月31日
    10
  • 什么叫做公网IP_是不是公网ip

    什么叫做公网IP_是不是公网ip由于公网ip资源匮乏,NAT(地址转换)技术被广泛应用。其好处就是让更多的电脑能够上网,缺点在于你自己搭建了一台服务器。想实现远程访问,如果服务器的地址如果是经过NAT转换后的地址,外网是无法访问到的。这就引出了公网ip和私网ip的概念,可以通过开头的数字来判断ip地址的类型,下面就给大家普及一下。由于私网ip地址仅限于局域网内使用,并且是可以重复的,所以IANA当初划分了一些网段,专供局域网内使用。具体网段如下:10.x.x.x192.168.x.x172.16.x.x-172.3

    2022年10月21日
    2
  • 20行Python代码爬取王者荣耀全英雄皮肤

    20行Python代码爬取王者荣耀全英雄皮肤引言王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了。我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成。准备工作爬取皮肤本身并不难,难点在于分析,我们首先得得到皮肤图片的url地址,话不多说,我们马上来到王者荣耀的官网:我们点击英雄资料,然后随意地选择一位英雄,接着F12打开调试台,找到英雄原皮肤的图片…

    2022年5月5日
    70

发表回复

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

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