aboutsummaryrefslogtreecommitdiffstats
path: root/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/impl/Commons.java
diff options
context:
space:
mode:
Diffstat (limited to 'rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/impl/Commons.java')
-rw-r--r--rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/impl/Commons.java28
1 files changed, 27 insertions, 1 deletions
diff --git a/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/impl/Commons.java b/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/impl/Commons.java
index 5211807a..2bb04df4 100644
--- a/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/impl/Commons.java
+++ b/rest-services/dmaap-client/src/main/java/org/onap/dcaegen2/services/sdk/rest/services/dmaap/client/impl/Commons.java
@@ -2,7 +2,7 @@
* ============LICENSE_START====================================
* DCAEGEN2-SERVICES-SDK
* =========================================================
- * Copyright (C) 2019 Nokia. All rights reserved.
+ * Copyright (C) 2019-2021 Nokia. All rights reserved.
* =========================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,8 +20,18 @@
package org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.impl;
+import com.google.common.primitives.Bytes;
+import io.vavr.Tuple;
+import io.vavr.Tuple2;
+import io.vavr.control.Option;
+import org.apache.commons.lang3.ArrayUtils;
+import org.onap.dcaegen2.services.sdk.model.streams.AafCredentials;
import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpResponse;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.util.Base64;
+
/**
* @author <a href="mailto:piotr.jaszczyk@nokia.com">Piotr Jaszczyk</a>
* @since April 2019
@@ -35,4 +45,20 @@ final class Commons {
return String.format("%d %s%n%s", httpResponse.statusCode(), httpResponse.statusReason(),
httpResponse.bodyAsString());
}
+
+ static Tuple2<String, String> basicAuthHeader(AafCredentials credentials) {
+ Charset utf8 = StandardCharsets.UTF_8;
+ byte[] username = toBytes(credentials.username(), utf8);
+ byte[] separator = ":".getBytes(utf8);
+ byte[] password = toBytes(credentials.password(), utf8);
+ byte[] combined = ArrayUtils.addAll(Bytes.concat(username, separator, password));
+ String userCredentials = Base64.getEncoder().encodeToString(combined);
+ return Tuple.of("Authorization", "Basic " + userCredentials);
+ }
+
+ private static byte[] toBytes(String text, Charset charset) {
+ return Option.of(text)
+ .map(s -> s.getBytes(charset))
+ .getOrElse(new byte[0]);
+ }
}