背景说明
SpringBoot 2.X已经抛弃了对Spring Security OAuth模块,而是通过Spring Security 5 支持了OAuth 2.0、客户端、资源服务器、授权服务器。
由此产生的重大变动,官方也针对常见问题进行了解答。原文链接:https://github.com/spring-projects/spring-security/wiki/OAuth-2.0-Features-Matrix#frequently-asked-questions
OAuth 2.0 三大主要模块
- 客户端 Client
- 资源服务 Resource Server
- 授权服务 Authorization Server
Client与 Resource Server 迁移
如何将Client与Resource Server 迁移至Spring Security 5.2.X也提供了官方文档https://github.com/spring-projects/spring-security/wiki/OAuth-2.0-Migration-Guide
Authorization Server迁移
迁移Authorization Server可以参考如下依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.5.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>2.5.4</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-authorization-server</artifactId>
<version>0.2.0</version>
</dependency>
兼容历史方案
如仍需在Spring Boot 2.X项目中继续使用Spring Security OAuth可以通过如下依赖加入:
<dependency>
<groupId>org.springframework.security.oauth.boot</groupId>
<artifactId>spring-security-oauth2-autoconfigure</artifactId>
<!-- <version>2.1.3.RELEASE</version> -->
</dependency>
Java版本依赖说明
0.3.0 之前版本依赖Java8
0.3.0 最低依赖java11
0.3.1 版本将降低Java版本至Java8
参考文档
集成 Spring Security OAuth Authorization Server
历史方案集成参考 spring-security-oauth2-jws-jwk
SpringBoot 2.4.6版本尚未支持说明 Springboot-features-security-authorization-server