다음과 같이 정의 된 OAuth2RestTemplate이 있습니다.
@Configuration
@EnableOAuth2Client
public class TestOauth{
@Bean
public OAuth2RestTemplate restTemplate(){
OAuth2RestTemplate restTemplate= new OAuth2RestTemplate(buildResourceDetails());
restTemplate.setRequestFactory(new BufferingClientHttpRequestFactory(new
HttpComponentsClientHttpRequestFactory()));
return restTemplate;
}
@Bean
public ClientCredentialsResourceDetails buildResourceDetails(){
ClientCredentialsResourceDetails resourceDetails = new ClientCredentialsResourceDetails();
resourceDetails.setClientId("TestId");
resourceDetails.setClientSecret("TestSecret");
resourceDetails.setAccessTokenUri("TestURI");
return resourceDetails;
}
이제 호출 class에서 아래와 같이 주석을 달았으며 제대로 작동합니다.
@Autowired
private OAuth2RestTemplate restTemplate;
이 기능을 일반화하고 off clientId, secret 및 URI를 기반으로 템플릿을 만들고 싶습니다. 이것을 어떻게 할 수 있습니까? 여러 @bean 메서드 (각 자격 증명에 대한 별도의 메서드)를 만들고 호출자 자격 증명을 기반으로지도에서 해당 빈을 선택하는 것이이를 달성하는 유일한 방법일까요?
@bean 메소드를 하나만 유지하고 restTemplate 메소드에 매개 변수를 전달하려고했지만 [java.lang.String] 유형의 정규화 Bean을 찾을 수 없음 오류가 계속 발생합니다.
조언하십시오