diff options
author | Rob Daugherty <rd472p@att.com> | 2018-04-18 16:57:11 -0400 |
---|---|---|
committer | Rob Daugherty <rd472p@att.com> | 2018-04-18 17:07:26 -0400 |
commit | 9218d80e65bf3eaa01e7942730bac8c72dcb7862 (patch) | |
tree | 2c3d32d4b1bb532d75b8bf2c65afc827e9add69c /common/src/main/java/org/openecomp/mso/client/policy/RestClient.java | |
parent | cb28756cf544a5dd6d35d6a134a471181c0abcc1 (diff) |
AAIRestClient support for Basic Auth
Adding support for Basic Auth in the AAI Rest Clients because
ONAP uses this (whereas ECOMP uses 2-way SSL).
In general, each AAI client will allow the user to configure
properties called "aai.auth" and "mso.msoKey". If these are
set, then the client will add the Authorization header to every
request.
Change-Id: I7c81ec05d2ec4a7dca131f2e9e19d341ac89b09f
Issue-ID: SO-576
Signed-off-by: Rob Daugherty <rd472p@att.com>
Diffstat (limited to 'common/src/main/java/org/openecomp/mso/client/policy/RestClient.java')
-rw-r--r-- | common/src/main/java/org/openecomp/mso/client/policy/RestClient.java | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/common/src/main/java/org/openecomp/mso/client/policy/RestClient.java b/common/src/main/java/org/openecomp/mso/client/policy/RestClient.java index 4e6ffd1c6a..77afe82758 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/RestClient.java +++ b/common/src/main/java/org/openecomp/mso/client/policy/RestClient.java @@ -23,6 +23,7 @@ package org.openecomp.mso.client.policy; import java.net.MalformedURLException; import java.net.URI; import java.net.URL; +import java.security.GeneralSecurityException; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; @@ -41,9 +42,11 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriBuilder; import javax.ws.rs.ext.ContextResolver; +import org.apache.commons.codec.binary.Base64; import org.apache.log4j.Logger; import org.openecomp.mso.client.RestProperties; import org.openecomp.mso.logger.MsoLogger; +import org.openecomp.mso.utils.CryptoUtils; import org.springframework.stereotype.Service; import com.fasterxml.jackson.databind.ObjectMapper; @@ -84,8 +87,6 @@ public abstract class RestClient { this(props, requestId, path); this.accept = accept; this.contentType = contentType; - this.requestId = requestId; - } protected RestClient(URL host, UUID requestId, String contentType) { @@ -134,6 +135,21 @@ public abstract class RestClient { protected abstract Optional<ClientResponseFilter> addResponseFilter(); public abstract RestClient addRequestId(UUID requestId); + + /** + * Adds a basic authentication header to the request. + * @param auth the encrypted credentials + * @param key the key for decrypting the credentials + */ + protected void addBasicAuthHeader(String auth, String key) { + try { + byte[] decryptedAuth = CryptoUtils.decrypt(auth, key).getBytes(); + String authHeaderValue = "Basic " + new String(Base64.encodeBase64(decryptedAuth)); + headerMap.put("Authorization", authHeaderValue); + } catch (GeneralSecurityException e) { + logger.warn(e.getMessage(), e); + } + } protected ContextResolver<ObjectMapper> getMapper() { return new CommonObjectMapperProvider(); |