summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap/dcaegen2/services/pmmapper/utils/RequestSender.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/onap/dcaegen2/services/pmmapper/utils/RequestSender.java')
-rw-r--r--src/main/java/org/onap/dcaegen2/services/pmmapper/utils/RequestSender.java26
1 files changed, 22 insertions, 4 deletions
diff --git a/src/main/java/org/onap/dcaegen2/services/pmmapper/utils/RequestSender.java b/src/main/java/org/onap/dcaegen2/services/pmmapper/utils/RequestSender.java
index fdbae59..c8e29f3 100644
--- a/src/main/java/org/onap/dcaegen2/services/pmmapper/utils/RequestSender.java
+++ b/src/main/java/org/onap/dcaegen2/services/pmmapper/utils/RequestSender.java
@@ -27,6 +27,8 @@ import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
+import java.util.Base64;
+import java.util.Optional;
import java.util.UUID;
import java.util.stream.Collectors;
@@ -38,6 +40,7 @@ import org.slf4j.LoggerFactory;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
+import org.jboss.logging.MDC;
public class RequestSender {
private static final int MAX_RETRIES = 5;
@@ -68,16 +71,27 @@ public class RequestSender {
}
/**
+ * Works just like {@link RequestSender#send(method,urlString,body, basicAuth)}, except {@code basicAuth }
+ * is set to empty String by default.
+ * @see RequestSender#send(String,String,String,String)
+ */
+ public String send(String method, final String urlString, final String body) throws Exception {
+ return send(method,urlString,body,"");
+ }
+
+ /**
* Sends an http request to a given endpoint.
* @param method of the outbound request
* @param urlString representing given endpoint
* @param body of the request as json
+ * @param encodedCredentials base64-encoded username password credentials
* @return http response body
* @throws Exception
*/
- public String send(String method, final String urlString, final String body) throws Exception {
+ public String send(String method, final String urlString, final String body, final String encodedCredentials) throws Exception {
final UUID invocationID = logger.invoke(ONAPLogConstants.InvocationMode.SYNCHRONOUS);
- final UUID requestID = UUID.randomUUID();
+ String requestID = Optional.ofNullable((String)MDC.get(ONAPLogConstants.MDCs.REQUEST_ID))
+ .orElse( UUID.randomUUID().toString());
String result = "";
for (int i = 1; i <= MAX_RETRIES; i++) {
@@ -89,6 +103,10 @@ public class RequestSender {
HttpsURLConnection.setDefaultSSLSocketFactory(SSLContext.getDefault().getSocketFactory());
}
+ if(!encodedCredentials.isEmpty()) {
+ connection.setRequestProperty("Authorization", "Basic " + encodedCredentials);
+ }
+
if(!body.isEmpty()) {
setMessageBody(connection, body);
}
@@ -116,10 +134,10 @@ public class RequestSender {
return result;
}
- private HttpURLConnection getHttpURLConnection(String method, URL url, UUID invocationID, UUID requestID) throws IOException {
+ private HttpURLConnection getHttpURLConnection(String method, URL url, UUID invocationID, String requestID) throws IOException {
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setReadTimeout(DEFAULT_READ_TIMEOUT);
- connection.setRequestProperty(ONAPLogConstants.Headers.REQUEST_ID, requestID.toString());
+ connection.setRequestProperty(ONAPLogConstants.Headers.REQUEST_ID, requestID);
connection.setRequestProperty(ONAPLogConstants.Headers.INVOCATION_ID, invocationID.toString());
connection.setRequestProperty(ONAPLogConstants.Headers.PARTNER_NAME, MapperConfig.CLIENT_NAME);
connection.setRequestMethod(method);