BAEL-1756 (#4349)
This commit is contained in:
		
							parent
							
								
									db233245e3
								
							
						
					
					
						commit
						0f15f15bf3
					
				@ -3,12 +3,10 @@ package org.baeldung.config;
 | 
				
			|||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.baeldung.interceptors.RestTemplateLoggingInterceptor;
 | 
					import org.baeldung.interceptors.RestTemplateHeaderModifierInterceptor;
 | 
				
			||||||
import org.springframework.context.annotation.Bean;
 | 
					import org.springframework.context.annotation.Bean;
 | 
				
			||||||
import org.springframework.context.annotation.Configuration;
 | 
					import org.springframework.context.annotation.Configuration;
 | 
				
			||||||
import org.springframework.http.client.BufferingClientHttpRequestFactory;
 | 
					 | 
				
			||||||
import org.springframework.http.client.ClientHttpRequestInterceptor;
 | 
					import org.springframework.http.client.ClientHttpRequestInterceptor;
 | 
				
			||||||
import org.springframework.http.client.SimpleClientHttpRequestFactory;
 | 
					 | 
				
			||||||
import org.springframework.util.CollectionUtils;
 | 
					import org.springframework.util.CollectionUtils;
 | 
				
			||||||
import org.springframework.web.client.RestTemplate;
 | 
					import org.springframework.web.client.RestTemplate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -17,13 +15,13 @@ public class RestClientConfig {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Bean
 | 
					    @Bean
 | 
				
			||||||
    public RestTemplate restTemplate() {
 | 
					    public RestTemplate restTemplate() {
 | 
				
			||||||
        RestTemplate restTemplate = new RestTemplate(new BufferingClientHttpRequestFactory(new SimpleClientHttpRequestFactory()));
 | 
					        RestTemplate restTemplate = new RestTemplate();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        List<ClientHttpRequestInterceptor> interceptors = restTemplate.getInterceptors();
 | 
					        List<ClientHttpRequestInterceptor> interceptors = restTemplate.getInterceptors();
 | 
				
			||||||
        if (CollectionUtils.isEmpty(interceptors)) {
 | 
					        if (CollectionUtils.isEmpty(interceptors)) {
 | 
				
			||||||
            interceptors = new ArrayList<ClientHttpRequestInterceptor>();
 | 
					            interceptors = new ArrayList<ClientHttpRequestInterceptor>();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        interceptors.add(new RestTemplateLoggingInterceptor());
 | 
					        interceptors.add(new RestTemplateHeaderModifierInterceptor());
 | 
				
			||||||
        restTemplate.setInterceptors(interceptors);
 | 
					        restTemplate.setInterceptors(interceptors);
 | 
				
			||||||
        return restTemplate;
 | 
					        return restTemplate;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					package org.baeldung.interceptors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.io.IOException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.springframework.http.HttpRequest;
 | 
				
			||||||
 | 
					import org.springframework.http.client.ClientHttpRequestExecution;
 | 
				
			||||||
 | 
					import org.springframework.http.client.ClientHttpRequestInterceptor;
 | 
				
			||||||
 | 
					import org.springframework.http.client.ClientHttpResponse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class RestTemplateHeaderModifierInterceptor implements ClientHttpRequestInterceptor {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException {
 | 
				
			||||||
 | 
					        ClientHttpResponse response = execution.execute(request, body); 
 | 
				
			||||||
 | 
					        response.getHeaders().add("Foo", "bar");
 | 
				
			||||||
 | 
					        return response;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -1,39 +0,0 @@
 | 
				
			|||||||
package org.baeldung.interceptors;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.io.IOException;
 | 
					 | 
				
			||||||
import java.nio.charset.StandardCharsets;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import org.apache.commons.lang3.StringUtils;
 | 
					 | 
				
			||||||
import org.springframework.http.HttpRequest;
 | 
					 | 
				
			||||||
import org.springframework.http.client.ClientHttpRequestExecution;
 | 
					 | 
				
			||||||
import org.springframework.http.client.ClientHttpRequestInterceptor;
 | 
					 | 
				
			||||||
import org.springframework.http.client.ClientHttpResponse;
 | 
					 | 
				
			||||||
import org.springframework.util.StreamUtils;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class RestTemplateLoggingInterceptor implements ClientHttpRequestInterceptor {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Override
 | 
					 | 
				
			||||||
    public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException {
 | 
					 | 
				
			||||||
        logRequest(body);
 | 
					 | 
				
			||||||
        ClientHttpResponse response = execution.execute(request, body);
 | 
					 | 
				
			||||||
        logResponse(response);
 | 
					 | 
				
			||||||
        response.getHeaders().add("Foo", "bar");
 | 
					 | 
				
			||||||
        return response;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private void logRequest(byte[] body) {
 | 
					 | 
				
			||||||
        if (body.length > 0) {
 | 
					 | 
				
			||||||
            String payLoad = new String(body, StandardCharsets.UTF_8);
 | 
					 | 
				
			||||||
            System.out.println(payLoad);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private void logResponse(ClientHttpResponse response) throws IOException {
 | 
					 | 
				
			||||||
        long contentLength = response.getHeaders()
 | 
					 | 
				
			||||||
            .getContentLength();
 | 
					 | 
				
			||||||
        if (contentLength != 0) {
 | 
					 | 
				
			||||||
           String payLoad = StreamUtils.copyToString(response.getBody(), StandardCharsets.UTF_8);
 | 
					 | 
				
			||||||
           System.out.println(payLoad);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user