diff options
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.java | 28 |
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]); + } } |