天天看点

springboot jwt token前后端分离_SpringBoot 整合SpringSecurity示例实现前后分离权限注解+JWT登录认证一.说明二.项目环境

20大进阶架构专题每日送达

springboot jwt token前后端分离_SpringBoot 整合SpringSecurity示例实现前后分离权限注解+JWT登录认证一.说明二.项目环境

作者:Sans_

juejin.im/post/5da82f066fb9a04e2a73daec

一.说明

SpringSecurity是一个用于Java 企业级应用程序的安全框架,主要包含用户认证和用户授权两个方面.相比较Shiro而言,Security功能更加的强大,它可以很容易地扩展以满足更多安全控制方面的需求,但也相对它的学习成本会更高,两种框架各有利弊.实际开发中还是要根据业务和项目的需求来决定使用哪一种.

JWT是在Web应用中安全传递信息的规范,从本质上来说是Token的演变,是一种生成加密用户身份信息的Token,特别适用于分布式单点登陆的场景,无需在服务端保存用户的认证信息,而是直接对Token进行校验获取用户信息,使单点登录更为简单灵活.

二.项目环境

  • SpringBoot版本:2.1.6
  • SpringSecurity版本: 5.1.5
  • MyBatis-Plus版本: 3.1.0
  • JDK版本:1.8
  • 数据表(SQL文件在项目中):数据库中测试号的密码进行了加密,密码皆为123456
springboot jwt token前后端分离_SpringBoot 整合SpringSecurity示例实现前后分离权限注解+JWT登录认证一.说明二.项目环境

Maven依赖如下:

org.springframework.boot
spring-boot-starter-webmysql
mysql-connector-javaruntimeorg.projectlombok
lomboktrueorg.springframework.boot
spring-boot-starter-testtestorg.springframework.boot
spring-boot-starter-securitycom.baomidou
mybatis-plus-boot-starter3.1.0com.alibaba
druid1.1.6org.apache.commons
commons-lang33.5com.alibaba
fastjson1.2.45org.springframework.security
spring-security-jwt1.0.9.RELEASEio.jsonwebtoken
jjwt0.9.0
           

配置如下:

# 配置端口
server:
port: 8764
spring:
# 配置数据源
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/sans_security?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertTo&useSSL=false
username: root
password: 123456
type: com.alibaba.druid.pool.DruidDataSource
# JWT配置
jwt:
# 密匙KEY
secret: JWTSecret
# HeaderKEY
tokenHeader: Authorization
# Token前缀字符
tokenPrefix: Sans-
# 过期时间 单位秒 1天后过期=86400 7天后过期=604800
expiration: 86400
# 配置不需要认证的接口
antMatchers: /index,/login/**,/favicon.ico
# Mybatis-plus相关配置
mybatis-plus:
# xml扫描,多个目录用逗号或者分号分隔(告诉 Mapper 所对应的 XML 文件位置)
mapper-locations: classpath:mapper/*.xml
# 以下配置均有默认值,可以不设置
global-config:
db-config:
#主键类型 AUTO:"数据库ID自增" INPUT:"用户输入ID           

继续阅读