private void traceResponse(long number, ClientHttpResponse response) throws IOException { String body = getBodyString(response); StringBuilder builder = new StringBuilder(); builder.append("ID: ").append(number).append('\n'); builder.append("Status: ").append(response.getStatusCode()).append(' ').append(response.getStatusText()).append('\n'); builder.append("Headers: ").append(response.getHeaders()).append('\n'); builder.append("Payload: ").append(body); LOG.debug("Inbound message\n---------------------\n{}\n---------------------", builder.toString()); }
private void logRequest(long number, HttpRequest request, byte[] body) throws IOException { StringBuilder builder = new StringBuilder(); builder.append("ID: ").append(number).append('\n'); builder.append("Request: ").append(request.getMethod()).append(' ').append(request.getURI()).append('\n'); builder.append("Headers: ").append(request.getHeaders()).append('\n'); builder.append("Payload: ").append(getRequestBody(body)); LOG.debug("Outbound message\n---------------------\n{}\n---------------------", builder.toString()); }
@Override public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException { long number = counter.incrementAndGet(); logRequest(number, request, body); ClientHttpResponse clientHttpResponse = execution.execute(request, body); traceResponse(number, clientHttpResponse); return clientHttpResponse; }
public RestService(String url, String username, String password) { this.url = url; template = new RestTemplate(); List<ClientHttpRequestInterceptor> interceptors = new ArrayList<>(); if (username != null) { interceptors.add(new BasicAuthenticationInterceptor(username, password)); } interceptors.add(new LoggingInterceptor()); template.setRequestFactory( new InterceptingClientHttpRequestFactory(template.getRequestFactory(), interceptors)); prismContext = ProxyCreator.getProxy(PrismContext.class, () -> { try { PrismContextFactory factory = new MidPointPrismContextFactory() { @Override protected void registerExtensionSchemas(SchemaRegistryImpl schemaRegistry) throws SchemaException, FileNotFoundException { super.registerExtensionSchemas(schemaRegistry); RestService.this.registerExtensionSchemas(schemaRegistry); } }; return factory.createPrismContext(); } catch (SchemaException | FileNotFoundException ex) { throw new NinjaException("Couldn't load prism context", ex); } }); }