20大进阶架构专题每日送达
作者:Sans_
juejin.im/post/5da82f066fb9a04e2a73daec
一.说明
SpringSecurity是一个用于Java 企业级应用程序的安全框架,主要包含用户认证和用户授权两个方面.相比较Shiro而言,Security功能更加的强大,它可以很容易地扩展以满足更多安全控制方面的需求,但也相对它的学习成本会更高,两种框架各有利弊.实际开发中还是要根据业务和项目的需求来决定使用哪一种.
JWT是在Web应用中安全传递信息的规范,从本质上来说是Token的演变,是一种生成加密用户身份信息的Token,特别适用于分布式单点登陆的场景,无需在服务端保存用户的认证信息,而是直接对Token进行校验获取用户信息,使单点登录更为简单灵活.
二.项目环境
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
|