我正在使用spring spring security oAuth2客户端。 并且有默认的OAuth2RestTemplate声明,它看起来像
@Bean
@Primary
public OAuth2RestTemplate oauth2RestTemplate(OAuth2ClientContext oauth2ClientContext,
OAuth2ProtectedResourceDetails details) {
OAuth2RestTemplate template = new OAuth2RestTemplate(details,
oauth2ClientContext);
return template;
}
我需要的是提供自定义错误处理,以便我尝试将其置于上下文中
@Bean
public OAuth2RestTemplate restTemplate(OAuth2ClientContext oauth2ClientContext,
OAuth2ProtectedResourceDetails details) {
OAuth2RestTemplate restTemplate = new OAuth2RestTemplate(details, oauth2Context);
restTemplate.setErrorHandler(new DefaultResponseErrorHandler() {
@Override
public void handleError(ClientHttpResponse response) throws IOException {
// do some stuff
}
});
return restTemplate;
}
这里的问题是默认实现注释为@Primary
,所以我想知道如何覆盖它?
答案 0 :(得分:1)
您可能只需获取默认实例并设置所需的所有属性,而不是覆盖默认实现。请参阅下面的示例。
@Configuration
public class OverridenConfiguration {
@Autowire
private OAuth2RestTemplate restTemplate;
@PostConstruct
public void customSettings() {
System.out.println("************** custom settings ***********");
restTemplate.setErrorHandler(new DefaultResponseErrorHandler() {
@Override
public void handleError(ClientHttpResponse response) throws IOException {
// do some stuff
}
});
}
}