private boolean hasTraceInterceptor(RestTemplate restTemplate) { for (ClientHttpRequestInterceptor interceptor : restTemplate.getInterceptors()) { if (interceptor instanceof TracingClientHttpRequestInterceptor) { return true; } } return false; }
@org.springframework.context.annotation.Primary @org.springframework.context.annotation.Bean public RestTemplate restTemplate(@Autowired CompensableRequestInterceptor compensableRequestInterceptor) { RestTemplate restTemplate = new RestTemplate(); restTemplate.getInterceptors().add(compensableRequestInterceptor); return restTemplate; }
@org.springframework.context.annotation.Primary @org.springframework.context.annotation.Bean public RestTemplate restTemplate(@Autowired CompensableRequestInterceptor compensableRequestInterceptor) { RestTemplate restTemplate = new RestTemplate(); restTemplate.getInterceptors().add(compensableRequestInterceptor); return restTemplate; }
@PostConstruct public void init() { if (this.restTemplates != null) { for (RestTemplate restTemplate : restTemplates) { List<ClientHttpRequestInterceptor> interceptors = new ArrayList<ClientHttpRequestInterceptor>( restTemplate.getInterceptors()); interceptors.add(this.fescarRestTemplateInterceptor); restTemplate.setInterceptors(interceptors); } } }
@org.springframework.context.annotation.Primary @org.springframework.cloud.client.loadbalancer.LoadBalanced @org.springframework.context.annotation.Bean public RestTemplate defaultRestTemplate(@Autowired CompensableRequestInterceptor compensableRequestInterceptor) { RestTemplate restTemplate = new RestTemplate(); restTemplate.getInterceptors().add(compensableRequestInterceptor); return restTemplate; }
@Override public void customize(RestTemplate restTemplate) { List<ClientHttpRequestInterceptor> list = new ArrayList<>(restTemplate.getInterceptors()); if(loadBalancerInterceptor!=null) { list.add(0, loadBalancerInterceptor); } if(retryLoadBalancerInterceptor!=null){ list.add(0, retryLoadBalancerInterceptor); } restTemplate.setInterceptors(list); }
@org.springframework.context.annotation.Primary @org.springframework.cloud.client.loadbalancer.LoadBalanced @org.springframework.context.annotation.Bean public RestTemplate defaultRestTemplate(@Autowired CompensableRequestInterceptor compensableRequestInterceptor) { RestTemplate restTemplate = new RestTemplate(); restTemplate.getInterceptors().add(compensableRequestInterceptor); return restTemplate; }
public void setDebugging(boolean debugging) { List<ClientHttpRequestInterceptor> currentInterceptors = this.restTemplate.getInterceptors(); if(debugging) { if (currentInterceptors == null) { currentInterceptors = new ArrayList<ClientHttpRequestInterceptor>(); } ClientHttpRequestInterceptor interceptor = new ApiClientHttpRequestInterceptor(); currentInterceptors.add(interceptor); this.restTemplate.setInterceptors(currentInterceptors); } else { if (currentInterceptors != null && !currentInterceptors.isEmpty()) { Iterator<ClientHttpRequestInterceptor> iter = currentInterceptors.iterator(); while (iter.hasNext()) { ClientHttpRequestInterceptor interceptor = iter.next(); if (interceptor instanceof ApiClientHttpRequestInterceptor) { iter.remove(); } } this.restTemplate.setInterceptors(currentInterceptors); } } this.debugging = debugging; }
/** {@inheritDoc} */ @Override public Object postProcessAfterInitialization(Object bean, String beanName) { // RestTemplate et getInterceptors() existent depuis spring-web 3.1.0.RELEASE if (REST_TEMPLATE_INTERCEPTOR_AVAILABLE && bean instanceof RestTemplate) { final RestTemplate restTemplate = (RestTemplate) bean; final List<ClientHttpRequestInterceptor> interceptors = new ArrayList<ClientHttpRequestInterceptor>( restTemplate.getInterceptors()); for (final ClientHttpRequestInterceptor interceptor : interceptors) { if (interceptor instanceof SpringRestTemplateInterceptor) { return bean; } } interceptors.add(SpringRestTemplateInterceptor.SINGLETON); restTemplate.setInterceptors(interceptors); } return bean; }
void inject(RestTemplate restTemplate) { if (hasTraceInterceptor(restTemplate)) { return; } List<ClientHttpRequestInterceptor> interceptors = new ArrayList<ClientHttpRequestInterceptor>( restTemplate.getInterceptors()); interceptors.add(0, this.interceptor); restTemplate.setInterceptors(interceptors); }
@Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (cache.containsKey(beanName)) { // add interceptor for each RestTemplate with @SentinelRestTemplate annotation StringBuilder interceptorBeanName = new StringBuilder(); SentinelRestTemplate sentinelRestTemplate = cache.get(beanName); interceptorBeanName .append(StringUtils.uncapitalize( SentinelProtectInterceptor.class.getSimpleName())) .append("_") .append(sentinelRestTemplate.blockHandlerClass().getSimpleName()) .append(sentinelRestTemplate.blockHandler()).append("_") .append(sentinelRestTemplate.fallbackClass().getSimpleName()) .append(sentinelRestTemplate.fallback()); RestTemplate restTemplate = (RestTemplate) bean; registerBean(interceptorBeanName.toString(), sentinelRestTemplate); SentinelProtectInterceptor sentinelProtectInterceptor = applicationContext .getBean(interceptorBeanName.toString(), SentinelProtectInterceptor.class); restTemplate.getInterceptors().add(0, sentinelProtectInterceptor); } return bean; }
@Override public void customize(RestTemplate restTemplate) { if (this.zipkinProperties.getCompression().isEnabled()) { restTemplate.getInterceptors().add(0, new GZipInterceptor()); } }
private void init(ApplicationContext ctx) { loadBalancedRestTemplate = new RestTemplate(); SpringClientFactory springClientFactory = springClientFactory(); springClientFactory.setApplicationContext(ctx); loadBalancerClient = new RibbonLoadBalancerClient(springClientFactory); //custom restTemplate LoadBalancerRequestFactory requestFactory = new LoadBalancerRequestFactory(loadBalancerClient, Collections.emptyList()); LoadBalancerInterceptor interceptor = new LoadBalancerInterceptor(loadBalancerClient, requestFactory); List<ClientHttpRequestInterceptor> interceptors = loadBalancedRestTemplate.getInterceptors(); ArrayList<ClientHttpRequestInterceptor> customedInterceptors = new ArrayList<>(interceptors.size() + 1); customedInterceptors.addAll(interceptors); customedInterceptors.add(interceptor); loadBalancedRestTemplate.setInterceptors(customedInterceptors); }
restTemplate.getInterceptors().add(this.basicAuthentication); restTemplate.getInterceptors().addAll(this.interceptors); if (!CollectionUtils.isEmpty(this.restTemplateCustomizers)) { for (RestTemplateCustomizer customizer : this.restTemplateCustomizers) {
@Test public void testRestTemplateHasInterceptor() throws Exception { final List<RestTemplate> restTemplates = Arrays.asList( new RestTemplate(), new RestTemplate(new SimpleClientHttpRequestFactory()), new RestTemplate(Collections.singletonList(new StringHttpMessageConverter()))); for (RestTemplate restTemplate : restTemplates) { assertThat(restTemplate.getInterceptors()).hasSize(1); assertThat(restTemplate.getInterceptors()).hasAtLeastOneElementOfType(SpringRestTemplateContextPropagatingInterceptor.class); } }
@Bean @ConditionalOnMissingBean public RestTemplateCustomizer restTemplateCustomizer( final RetryLoadBalancerInterceptor loadBalancerInterceptor) { return restTemplate -> { List<ClientHttpRequestInterceptor> list = new ArrayList<>( restTemplate.getInterceptors()); list.add(loadBalancerInterceptor); restTemplate.setInterceptors(list); }; } }
@Bean @ConditionalOnMissingBean public RestTemplateCustomizer restTemplateCustomizer( final LoadBalancerInterceptor loadBalancerInterceptor) { return restTemplate -> { List<ClientHttpRequestInterceptor> list = new ArrayList<>( restTemplate.getInterceptors()); list.add(loadBalancerInterceptor); restTemplate.setInterceptors(list); }; } }
@Bean @LoadBalanced @SentinelRestTemplate(blockHandler = "handleException", blockHandlerClass = MySentinelExceptionHandler.class) public RestTemplate restTemplate(@Autowired(required = false) RestTemplateStrategyInterceptor restTemplateStrategyInterceptor) { RestTemplate restTemplate = new RestTemplate(); if (restTemplateStrategyInterceptor != null) { restTemplate.getInterceptors().add(restTemplateStrategyInterceptor); } return restTemplate; }
@Bean(name = "omegaRestTemplate") public RestTemplate omegaRestTemplate(@Autowired(required=false) OmegaContext context) { RestTemplate template = new RestTemplate(); List<ClientHttpRequestInterceptor> interceptors = template.getInterceptors(); interceptors.add(new TransactionClientHttpRequestInterceptor(context)); template.setInterceptors(interceptors); return template; } }
@Bean public RestTemplate restTemplate() { final RestTemplate restTemplate = new RestTemplate(); restTemplate.setMessageConverters(Arrays.asList( new FormHttpMessageConverter(), new StringHttpMessageConverter() )); restTemplate.getInterceptors().add(new BasicAuthorizationInterceptor("client", "secret")); return restTemplate; }