package com.mozu.api.security; import org.apache.commons.configuration.PropertiesConfiguration; import org.apache.commons.lang.StringUtils; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import com.mozu.api.MozuConfig; import com.mozu.api.contracts.appdev.AppAuthInfo; import com.mozu.api.contracts.core.UserAuthInfo; public class SecurityTestBase { protected final static String CONFIG_PROPERTIES_FILENAME = "mozu_config.properties"; // the following are defined properties for the SDK public final static String MOZU_BASE_URL = "base.url"; public final static String SHARED_SECRET = "shared.secret"; public final static String APP_ID = "app.id"; public final static String PROXY_HOST = "proxy.host"; public final static String PROXY_PORT = "proxy.port"; public final static String DEV_USERNAME = "username.developer"; public final static String TENANT_USERNAME = "username.tenant"; public final static String TENANT_ID = "tenant.id"; public final static String PASSWORD = "password"; protected static PropertiesConfiguration configProps = null; @BeforeClass static public void setUpBeforeClass() throws Exception { configProps = new PropertiesConfiguration(CONFIG_PROPERTIES_FILENAME); MozuConfig.setBaseUrl(configProps.getString(MOZU_BASE_URL)); MozuConfig.setProxyHost(configProps.getString(PROXY_HOST)); String proxyPortString = configProps.getString(PROXY_PORT); if (StringUtils.isNotBlank(proxyPortString)) { MozuConfig.setProxyPort (Integer.valueOf(proxyPortString)); } } @AfterClass static public void tearDownAfterClass() throws Exception { } @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { AppAuthenticator.invalidateAuth(); } protected AppAuthInfo createAppAuthInfo(String appId, String sharedSecret) { AppAuthInfo appAuthInfo = new AppAuthInfo(); appAuthInfo.setApplicationId(appId); appAuthInfo.setSharedSecret(sharedSecret); return appAuthInfo; } protected AuthenticationProfile authenticateUser(AuthenticationScope scope, String userName) { String appId = configProps.getString(APP_ID); String sharedSecret = configProps.getString(SHARED_SECRET); AppAuthenticator.initialize(createAppAuthInfo(appId, sharedSecret)); // Authorize user and get tenants UserAuthInfo userAuth = new UserAuthInfo(); userAuth.setEmailAddress(userName); userAuth.setPassword(configProps.getString(PASSWORD)); // Authorize user return UserAuthenticator.authenticate(userAuth, scope); } }