Spring cloud OAuth2Client上下文未被注入
应用程序没有启动,因为有两个候选bean。我在启动应用程序时遇到以下错误Spring cloud OAuth2Client上下文未被注入,spring-cloud,spring-security-oauth2,spring-oauth2,Spring Cloud,Spring Security Oauth2,Spring Oauth2,应用程序没有启动,因为有两个候选bean。我在启动应用程序时遇到以下错误 *************************** APPLICATION FAILED TO START *************************** Description: Parameter 0 of method oauth2RestTemplate in com.classpath.assetservice.AssetServiceApplication required a bean of
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of method oauth2RestTemplate in com.classpath.assetservice.AssetServiceApplication required a bean of type 'org.springframework.security.oauth2.client.OAuth2ClientContext' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
The following candidates were found but could not be injected:
- Bean method 'oauth2ClientContext' in 'OAuth2RestOperationsConfiguration.RequestScopedConfiguration' not loaded because OAuth Client ID did not find security.oauth2.client.client-id property
- Bean method 'oauth2ClientContext' in 'OAuth2RestOperationsConfiguration.SingletonScopedConfiguration' not loaded because AnyNestedCondition 0 matched 2 did not; NestedCondition on OAuth2RestOperationsConfiguration.ClientCredentialsCondition.NoWebApplication @ConditionalOnWebApplication found 'session' scope and did not find reactive web application classes; NestedCondition on OAuth2RestOperationsConfiguration.ClientCredentialsCondition.ClientCredentialsConfigured @ConditionalOnProperty (security.oauth2.client.grant-type=client_credentials) did not find property 'grant-type'
Action:
Consider revisiting the entries above or defining a bean of type 'org.springframework.security.oauth2.client.OAuth2ClientContext' in your configuration.
Process finished with exit code 1
下面是我的控制器
课程
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.security.oauth2.client.OAuth2ClientContext;
import org.springframework.security.oauth2.client.OAuth2RestTemplate;
import org.springframework.security.oauth2.client.resource.OAuth2ProtectedResourceDetails;
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
import java.util.Collections;
import java.util.List;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@EnableCircuitBreaker
@EnableResourceServer
public class AssetServiceApplication {
@Bean
public OAuth2RestTemplate oauth2RestTemplate(
OAuth2ClientContext oauth2ClientContext,
OAuth2ProtectedResourceDetails details) {
return new OAuth2RestTemplate(details, oauth2ClientContext);
}
public static void main(String[] args) {
SpringApplication.run(AssetServiceApplication.class, args);
}
以下是相应的依赖项:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-oauth2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-security</artifactId>
</dependency>
org.springframework.cloud
spring-cloud-starter-oauth2
org.springframework.cloud
SpringCloudStarter安全
哪里出了问题。通过在application.yml文件中添加以下属性修复了此问题
security:
oauth2:
resource:
userInfoUri: http://localhost:8901/auth/user
client: # This property (client.grant-type)
grant-type: client_credentials
根据Spring文档,您只需添加
@enableAuth2Client
,Spring Boot将为您创建一个OAuth2Client上下文
。有关更多详细信息,请参阅