程序员的成长之路

互联网/程序员/技术/资料共享

关注

阅读本文大概需要 2.8 分钟。

来自:网络,侵删

前几天,有不少人问我,有没有基于 SpringBoot 的脚手架项目。今天我就推荐一个基本的框架脚手架,特别是学会使用 jwt + shiro 的权限组合!其实有了 SpringBoot 后,项目搭建的难度一降再降,可还是有人想偷懒,就怕你几年后会后悔!一、背景前后端分离已经成为互联网项目开发标准,它会为以后的大型分布式架构打下基础。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 可以跨不同语言,自带身份信息,并且非常容易传递。
二、项目特性自定义 @Log 注解自动记录日志到数据库。自定义 @Pass 注解接口不用进行认证身份。使用 JSONObject 统一获取 body 请求参数,减少实体类的数量。完成自定义 @ValidationParam 注解验证请求参数是否为空。使用 bcrypt 算法加密密码,著名代码托管网站 Github 和美国军方防火墙同样采用此算法,靠 bcrypt 算法会成功保住密码强度不算很高的大部分账户。搭配 Shiro 注解配置权限,高度灵活,提供按钮级别的权限控制,后端接口只验证权限,不看角色。用自定义 @CurrentUser 注解获取当前登录用户,Controlle 层统一异常处理:用 SpringAOP 切面编程进行声明式事务,过滤请求参数,防止 XSS 攻击。使用 POST 请求登录返回 token 和权限信息 (service 层增删改方法命名规范会自动加上事物),保证请求无状态,返回实体如果属性为空不显示。三、程序逻辑填写用户名密码用 POST 请求访问 / login 接口,返回 token 令牌等信息,失败则直接跳转 401 错误页面。2. 在之后需要验证身份的请求的 Headers 中添加 Authorization 和登录时返回的 token 令牌。
服务端进行 token 认证,失败跳转 401 页面。用 JWT 做认证(登录),Shiro 做授权。四、运行项目项目结构:
  • 通过 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 插件, 不然会报红

运行截图:

这个项目注释完整,并且自定义了启动图案~

GitHub 地址:github.com/qq53182347/liugh-parent

<END>

推荐阅读:

10 行 Python 代码写 1 个 USB 病毒

序列化与反序列化:作为Java开发,应该避开这些坑......

互联网初中高级大厂面试题(9个G)
内容包含Java基础、JavaWeb、MySQL性能优化、JVM、锁、百万并发、消息队列、高性能缓存、反射、Spring全家桶原理、微服务、Zookeeper......等技术栈!
⬇戳阅读原文领取!                                  朕已阅

Spring Boot+JWT+Shiro+MyBatisPlus 实现 RESTful 快速开发后端脚手架!相关推荐

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

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

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

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 一.背景 前后端分离已经成为互联网项目开发标准,它会为以后的大型分 ...

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

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

  4. Spring Boot JWT 快速入门

    本章节讨论 jwt 在 spring boot 中的应用.意在快速入门 jwt. java jdk1.8 maven 3.2+ spring boot 2.0+ JSON Web Token(JWT) ...

  5. Spring Boot整合Shiro + Springboot +vue

    目录 02 Spring Boot整合Shiro p1.shiro概述 1 什么是Shiro 2 Shiro核心组件 p2.Shiro实现登录认证 AccountRealm.java QueryWra ...

  6. Spring Boot中使用Swagger2构建RESTful APIs

    关于 Swagger Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因: Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API. S ...

  7. spring boot结合shiro实现用户-角色-权限的控制(包含用户名密码登陆和手机号验证码登陆)

    spring boot整合shiro实现权限校验 1.首先导入项目所需jar包 <parent><groupId>org.springframework.boot</gr ...

  8. 有手就行的 Spring Boot 集成 Shiro

    前言   Apache Shiro 是 Java 的一个安全框架.目前,使用 Apache Shiro 的人越来越多,因为它相当简单,对比 Spring Security,可能没有 Spring Se ...

  9. Spring Boot集成Sharding-jdbc + Mybatis-Plus实现分库分表

    来源:https://blog.csdn.net/Macky_He/article/details/95754402 作者:Macky_He 一. Sharding-jdbc简介 Sharding-j ...

最新文章

  1. 在别的电脑上运行cg程序出现错误的解决办法
  2. mysql 单实例部署_Mysql 数据库单机多实例部署手记
  3. AI换脸技术再创新高度,DeepMind发布的VQ-VAE二代算法有多厉害?
  4. 管理者如何管理好有一个团队?
  5. Win32汇编ListBox最简Demo
  6. Java 位运算- 十进制数值转十六进制(内存中的数据)
  7. mysql允许远程访问
  8. Spring Annotation(@Autowire、@Qualifier)
  9. 微课系列(8):Python中lambda表达式的变量作用域
  10. python删除文件夹下文件夹_python删除指定文件夹下文件和文件夹的方法详解
  11. Servlet+Ajax实现搜索智能提示
  12. Cglib 代码生成库使用快速入门
  13. 【ML小结4】深入了解SVM
  14. springboot项目java生成kml文件
  15. WinRAR 4.0 简体中文正式版美化版下载 (包含32位与64位)
  16. FPS游戏方框透视基本原理
  17. 电影海报的多标签分类
  18. PHPstorm 函数或者方法的注释的时间和用户名,PHPstorm里函数方法的注释是没有动态时间设置的,但是看了PHP file里面有时间日期的注释,而PHP Function Doc Commen
  19. JAVA的诞生及版本
  20. win10计算机管理 用户,Win10专业版系统管理员帐户的开启设置方法

热门文章

  1. 查找手机内所有app 包名
  2. 2022年浙江省中职组“网络空间安全”编码信息获取
  3. Latex大括号及多行公式
  4. 为什么黑客几乎不用鼠标?
  5. 故障分析 | 数据库表空间被 rm 后,怎么处理
  6. python生成中文词云图
  7. PostgreSQL 15 新特性解读 | 墨天轮优质文章合集
  8. “为什么你们开发这么慢?” 3页ppt讲透:帕金森定律,低效正在杀死你的团队!...
  9. 如何获取保存阿里云的图片url
  10. 百度飞桨ai达人创造营01-创意的诞生