aboutsummaryrefslogtreecommitdiffstats
path: root/common/src/main/java/org/openecomp/mso/client/policy
diff options
context:
space:
mode:
authorRob Daugherty <rd472p@att.com>2018-04-18 16:57:11 -0400
committerRob Daugherty <rd472p@att.com>2018-04-18 17:07:26 -0400
commit9218d80e65bf3eaa01e7942730bac8c72dcb7862 (patch)
tree2c3d32d4b1bb532d75b8bf2c65afc827e9add69c /common/src/main/java/org/openecomp/mso/client/policy
parentcb28756cf544a5dd6d35d6a134a471181c0abcc1 (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')
-rw-r--r--common/src/main/java/org/openecomp/mso/client/policy/RestClient.java20
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();