package com.baeldung.client; import org.apache.http.HttpHost; import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.http.client.ClientHttpRequestFactory; import org.springframework.http.client.support.BasicAuthenticationInterceptor; import org.springframework.stereotype.Component; import org.springframework.web.client.RestTemplate; @Component public class RestTemplateFactory implements FactoryBean, InitializingBean { private RestTemplate restTemplate; public RestTemplateFactory() { super(); } // API @Override public RestTemplate getObject() { return restTemplate; } @Override public Class getObjectType() { return RestTemplate.class; } @Override public boolean isSingleton() { return true; } @Override public void afterPropertiesSet() { HttpHost host = new HttpHost("localhost", 8082, "http"); final ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactoryBasicAuth(host); restTemplate = new RestTemplate(requestFactory); restTemplate.getInterceptors().add(new BasicAuthenticationInterceptor("user1", "user1Pass")); } }