Spring Bean方法&x27;clientRegistrationRepository';未加载,因为OAuth2客户端配置的条件注册客户端不可用
在使用okta实现Spring安全性时,我面临以下问题。“OAuth2ClientRegistrationRepositoryConfiguration”中的Bean方法“ClientRegistrationRepositoryRepository”未加载,因为OAuth2客户端配置的条件注册客户端不可用Spring Bean方法&x27;clientRegistrationRepository';未加载,因为OAuth2客户端配置的条件注册客户端不可用,spring,spring-security,oauth-2.0,okta,Spring,Spring Security,Oauth 2.0,Okta,在使用okta实现Spring安全性时,我面临以下问题。“OAuth2ClientRegistrationRepositoryConfiguration”中的Bean方法“ClientRegistrationRepositoryRepository”未加载,因为OAuth2客户端配置的条件注册客户端不可用 *************************** APPLICATION FAILED TO START *************************** Description
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of method webClient in com.okta.example.oauth2demo.OAuth2DemoApplication_Okta_2_1$WebClientConfig required a bean of type 'org.springframework.security.oauth2.client.registration.ClientRegistrationRepository' that could not be found.
The following candidates were found but could not be injected:
- Bean method 'clientRegistrationRepository' in 'OAuth2ClientRegistrationRepositoryConfiguration' not loaded because OAuth2 Clients Configured Condition registered clients is not available
Action:
Consider revisiting the entries above or defining a bean of type 'org.springframework.security.oauth2.client.registration.ClientRegistrationRepository' in your configuration.```
下面是我试图运行的代码
@RestController
@SpringBootApplication
public class OAuth2DemoApplication_Okta_2_1 {
@Value("#{ @environment['okta.oauth2.audience'] }")
private String resourceServerUrl;
private WebClient webClient;
public OAuth2DemoApplication_Okta_2_1(WebClient webClient) {
this.webClient = webClient;
}
public static void main(String[] args) {
SpringApplication.run(OAuth2DemoApplication_Okta_2_1.class, args);
}
@GetMapping("/")
String home(@AuthenticationPrincipal OidcUser user) {
return "Hello " + user.getFullName();
}
@GetMapping("/api")
String api() {
return this.webClient
.get()
.uri(this.resourceServerUrl + "/api")
.retrieve()
.bodyToMono(String.class)
.block();
}
@Configuration
public static class WebClientConfig {
@Bean
WebClient webClient(
ClientRegistrationRepository clientRegistrations, OAuth2AuthorizedClientRepository authorizedClients
) {
ServletOAuth2AuthorizedClientExchangeFilterFunction oauth2 =
new ServletOAuth2AuthorizedClientExchangeFilterFunction(clientRegistrations, authorizedClients);
oauth2.setDefaultOAuth2AuthorizedClient(true);
oauth2.setDefaultClientRegistrationId("okta");
return WebClient.builder()
.apply(oauth2.oauth2Configuration())
.build();
}
}
}
application.yml
okta:
oauth2:
clientId:
clientSecret:
issuer:
audience: