一、背景

前后端分离已经成为互联网项目开发标准,它会为以后的大型分布式架构打下基础。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注解验证请求参数是否为空。

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

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

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

7.使用POST请求登录返回token和权限信息,保证请求无状态,返回实体如果属性为空不显示。

三、程序逻辑

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

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

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

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

四、运行项目

项目结构:

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

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

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

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

  • Eclipse、IDEA运行SpringbootApplication.java,则可启动项目

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

  • 账号密码:123456/123

  • 获取token访问其他接口

运行截图:

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

面试造火箭,工作拧螺丝,希望对你有所帮助

多多转发、点赞、评论、关注我、谢谢大家,让更多人受益!!!

你们的支持是我最大的动力!!!!

SpringBoot+JWT+Shiro+MybatisPlus后端脚手架相关推荐

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

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:lywJee cnblogs.com/lywJ/p/1125 ...

  2. springboot+jwt+shiro+vue+elementUI+axios+redis+mysql完成一个前后端分离的博客项目(笔记,帮填坑)

    根据B站up主MarkerHub视频制作的一个笔记 我的博客 B站博主链接: https://www.bilibili.com/video/BV1PQ4y1P7hZ?p=1 博主的开发文档: http ...

  3. springboot jwt token前后端分离_基于Spring Boot+Spring Security+JWT+Vue前后端分离的开源项目...

    一.前言 最近整合Spring Boot+Spring Security+JWT+Vue 完成了一套前后端分离的基础项目,这里把它开源出来分享给有需要的小伙伴们 功能很简单,单点登录,前后端动态权限配 ...

  4. SpringBoot+jwt+shiro实现登录验证及接口权限校验

    SpringBoot+jwt+shiro+token实现对接口权限校验 最近在一个项目上实现登录模块,就想到了权限验证功能,了解了Spring Security和Shiro之后,决定使用Shiro来实 ...

  5. springboot集成shiro 前后端分离 统一处理shiro异常

    springboot集成shiro 前后端分离 统一处理shiro异常 参考文章: (1)springboot集成shiro 前后端分离 统一处理shiro异常 (2)https://www.cnbl ...

  6. Springboot整合Shiro前后端分离跨域问题

    Springboot整合Shiro前后端分离跨域问题 前言:SpringBoot整合shiro进行前后端分离开发时(前端是Vue),项目做了跨域配置,但还是前端请求会出现cros err–显示的跨域问 ...

  7. Spring Boot+JWT+Shiro+MyBatisPlus实现Restful快速开发后端脚手架

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:我叫刘半仙 链接:my.oschina.net/liughD ...

  8. Spring Boot+JWT+Shiro+MyBatisPlus 实现 RESTful 快速开发后端脚手架!

    程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 2.8 分钟. 来自:网络,侵删 前几天,有不少人问我,有没有基于 SpringBoot 的脚手架项目.今天我就推荐一个基本的 ...

  9. shiro+php,一套基于SpringBoot+Vue+Shiro 前后端分离 开发的代码生成器

    一.前言 最近花了一个月时间完成了一套基于Spring Boot+Vue+Shiro前后端分离的代码生成器,目前项目代码已基本完成 止步传统CRUD,进阶代码优化: 该项目可根据数据库字段动态生成 c ...

最新文章

  1. python反转字符串_python翻转字符串
  2. 【推荐系统】深入理解YouTube推荐系统算法
  3. python显示乱码_python2显示乱码问题实战详解
  4. pytorch torch.triu
  5. spring配置定时器的时间设置
  6. Dj Swivel Knocktonal for Mac(音符共振增强器)
  7. 各个蒙版的作用与区别
  8. 中国知网上html是什么意思,知网上网络首发是什么意思
  9. crx什么意思_CRX文件怎么打开-CRX是什么格式-CRX文件是什么意思-腾牛网
  10. html边框是啥意思,css中border是什么意思
  11. 使用Qt常见报错及解决方案
  12. 关于文档中的背景水印无法去除的解决办法
  13. 玩转X-CTR100 l STM32F4 l PS2无线手柄-4WD智能小车
  14. 【Day1】数组、704二分查找、27移除元素
  15. 从量变到质变——AMD打“翻身仗”的秘诀
  16. HBase Shell启动缓慢及操作耗时长的原因分析与解决
  17. 面向对象学习笔记1 - 人狗大战
  18. LINUX下完全免费的P2P网络电视SopCast
  19. 03.23可转债打新策略
  20. 作为金山办公产品的用户对WPS Office的质疑

热门文章

  1. 我开博的这一年!!!
  2. 【设计模式】设计模式的七大原则
  3. 利用python在网上接单赚钱,兼职也能月入过万,还不赶紧学起来
  4. Python文字转换语音,抠脚大汉秒变撒娇萌妹
  5. VUE-17 图片的获取,购物车商品数量的添加与减少,计算整个购物车商品的价格(循环)
  6. python读取大文件md5校验性能优化比较
  7. 小程序uniapp实现左滑删除效果
  8. QPushButton去掉虚线框
  9. 快速查询每个快递单号物流详情,支持国内常用的快递公司
  10. 华为荣耀所有系列手机,如何安装谷歌应用框架?