package org.openstack.atlas.restclients.auth; import org.openstack.atlas.cfg.PublicApiServiceConfigurationKeys; import org.openstack.atlas.restclients.auth.config.AuthenticationCredentialConfiguration; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.openstack.atlas.api.filters.helpers.StringUtilities; import org.openstack.atlas.cfg.Configuration; import org.openstack.identity.client.client.IdentityClient; import org.openstack.identity.client.fault.IdentityFault; import org.openstack.identity.client.token.AuthenticateResponse; import java.net.MalformedURLException; import java.net.URISyntaxException; public class IdentityClientImpl implements IdentityAuthClient { private static final Log LOG = LogFactory.getLog(IdentityClientImpl.class); public IdentityClient identityClient; private static Configuration configuration = new AuthenticationCredentialConfiguration(); public IdentityClientImpl() throws MalformedURLException, URISyntaxException, IdentityFault { if (configuration.hasKeys(PublicApiServiceConfigurationKeys.identity_auth_url, PublicApiServiceConfigurationKeys.identity_user, PublicApiServiceConfigurationKeys.identity_pass)) { LOG.info("Auth URI from local conf: " + configuration.getString(PublicApiServiceConfigurationKeys.identity_auth_url)); identityClient = new IdentityClient(configuration.getString(PublicApiServiceConfigurationKeys.identity_auth_url)); } else { LOG.error(StringUtilities.AUTH_INIT_FAIL); throw new RuntimeException(StringUtilities.AUTH_INIT_FAIL); } } @Override public AuthenticateResponse getAuthResponse() throws URISyntaxException, IdentityFault { String username = configuration.getString(PublicApiServiceConfigurationKeys.identity_user); String password = configuration.getString(PublicApiServiceConfigurationKeys.identity_pass); return this.getAuthResponse(username, password); } @Override public AuthenticateResponse getAuthResponse(String username, String password) throws URISyntaxException, IdentityFault { return identityClient.authenticateUsernamePassword(username, password); } @Override public String getAuthToken() throws URISyntaxException, IdentityFault { String username = configuration.getString(PublicApiServiceConfigurationKeys.identity_user); String password = configuration.getString(PublicApiServiceConfigurationKeys.identity_pass); return this.getAuthResponse(username, password).getToken().getId(); } @Override public String getAuthToken(String username, String password) throws URISyntaxException, IdentityFault { return getAuthResponse(username, password).getToken().getId(); } }