package com.juick.components.configuration; import com.juick.components.Notifications; import com.juick.configuration.DataConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; import org.springframework.http.client.ClientHttpRequestInterceptor; import org.springframework.http.client.InterceptingClientHttpRequestFactory; import org.springframework.http.client.support.BasicAuthorizationInterceptor; import org.springframework.web.client.RestTemplate; import javax.inject.Inject; import java.util.Collections; import java.util.List; /** * Created by aalexeev on 11/12/16. */ @Configuration @PropertySource("classpath:juick.conf") @Import(DataConfiguration.class) public class NotificationsAppConfiguration { @Inject private Environment env; @Bean public RestTemplate rest() { RestTemplate rest = new RestTemplate(); List interceptors = Collections .singletonList( new BasicAuthorizationInterceptor(env.getProperty("api_user", "juick"), env.getProperty("api_password", "secret"))); rest.setRequestFactory(new InterceptingClientHttpRequestFactory(rest.getRequestFactory(), interceptors)); return rest; } @Bean public Notifications push() { return new Notifications(env, rest()); } }