package com.stormpath.sample.conf; import com.stormpath.sdk.api.ApiKeys; import com.stormpath.sdk.client.Client; import com.stormpath.sdk.client.ClientBuilder; import com.stormpath.sdk.client.Clients; import com.stormpath.shiro.cache.ShiroCacheManager; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Profile; /** * @since 1.0.RC */ @Configuration("stormpathClientConfiguration") @Import(PropertiesConfiguration.class) public class StormpathClientConfiguration { @Autowired private CacheConfiguration cacheConfiguration; @Value("${stormpath.apiKeyFileLocation}") private String apiKeyFileLocation; @Value("${stormpath.baseurl}") private String stormpathBaseUrl; @Bean(name = "stormpathClient") @Profile({"default", "production"}) public Client getClient() { ClientBuilder builder = Clients.builder().setApiKey(ApiKeys.builder().setFileLocation(apiKeyFileLocation).build()) .setCacheManager(new ShiroCacheManager(cacheConfiguration.cacheManager())); return builder.build(); } @Bean(name = {"testStormpathClient", "stormpathClient"}) @Profile({"local", "staging"}) public Client getTestClient() { ClientBuilder builder = Clients.builder().setApiKey(ApiKeys.builder().setFileLocation(apiKeyFileLocation).build()) .setCacheManager(new ShiroCacheManager(cacheConfiguration.cacheManager())); builder.setBaseUrl(stormpathBaseUrl); return builder.build(); } }