Spring Boot中ProviderSettings类无法解析的问题求助
问题:Spring Boot OAuth认证服务器中找不到ProviderSettings类
我是Spring Boot新手,正在跟随教程搭建OAuth认证服务器。在配置AuthorizationServerConfig.java时,教程中从org.springframework.security.oauth2.server.authorization.config包导入ProviderSettings类,但我的项目中该包下没有这个类。已经尝试查找正确的导入路径并核对依赖,仍未解决问题。请问是缺少依赖还是该类已不再可用?
错误代码示例
@Bean public ProviderSettings providerSettings(){ return ProviderSettings.builder() .issuer("http://auth-server:9000") .build(); }
项目pom.xml配置
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.0.3</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>np.com.oskarshrestha</groupId> <artifactId>Oauth-authorization-server</artifactId> <version>0.0.1-SNAPSHOT</version> <name>Oauth-authorization-server</name> <description>Demo project for Spring Boot</description> <properties> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-oauth2-authorization-server</artifactId> <version>1.0.1</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </plugin> </plugins> </build> </project>
问题原因及解决办法
核心原因是依赖版本不匹配:你当前使用的Spring Boot版本是3.0.3,对应的Spring Security OAuth2 Authorization Server应该用1.1.x系列,但你配置的是1.0.1。这两个版本里
ProviderSettings的包路径不一样:- 1.0.x版本:
org.springframework.security.oauth2.server.authorization.settings - 1.1.x版本:
org.springframework.security.oauth2.server.authorization.config(也就是教程里的路径)
- 1.0.x版本:
两种解决方式任选其一:
- 升级依赖版本:把
spring-security-oauth2-authorization-server的版本改为1.1.2(和Spring Boot 3.0.3兼容的稳定版本),这样就能直接用教程里的导入路径,代码无需改动。 - 修改导入路径:保持1.0.1版本不变,把导入语句改成
import org.springframework.security.oauth2.server.authorization.settings.ProviderSettings;,代码逻辑不需要调整。
- 升级依赖版本:把
内容的提问来源于stack exchange,提问作者Oskar Shrestha
相关产品推荐
相关产品推荐

