diff options
Diffstat (limited to 'sdc-distribution-client/src/main')
4 files changed, 53 insertions, 7 deletions
diff --git a/sdc-distribution-client/src/main/java/org/onap/sdc/api/consumer/IConfiguration.java b/sdc-distribution-client/src/main/java/org/onap/sdc/api/consumer/IConfiguration.java index 88db133..c7248eb 100644 --- a/sdc-distribution-client/src/main/java/org/onap/sdc/api/consumer/IConfiguration.java +++ b/sdc-distribution-client/src/main/java/org/onap/sdc/api/consumer/IConfiguration.java @@ -45,6 +45,18 @@ public interface IConfiguration { String getUser(); /** + * Return True if ssl is needed, false otherwise. + * This param can be null, then default (HTTPS) behavior will be + * applied. If set to false, distribution client will use HTTP when + * connecting to SDC. + * + * @return + */ + default Boolean isUseHttpsWithSDC() { + return true; + } + + /** * User Password for SDC distribution consumer authentication. * * @return User Password. diff --git a/sdc-distribution-client/src/main/java/org/onap/sdc/http/HttpAsdcClient.java b/sdc-distribution-client/src/main/java/org/onap/sdc/http/HttpAsdcClient.java index 7871816..44f1295 100644 --- a/sdc-distribution-client/src/main/java/org/onap/sdc/http/HttpAsdcClient.java +++ b/sdc-distribution-client/src/main/java/org/onap/sdc/http/HttpAsdcClient.java @@ -70,18 +70,28 @@ public class HttpAsdcClient implements IHttpAsdcClient { private static final String TLS = "TLSv1.2"; private static final String AUTHORIZATION_HEADER = "Authorization"; private static final String HTTPS = "https://"; + private static final String HTTP = "http://"; public static final int AUTHORIZATION_SCOPE_PORT = 443; + public static final int AUTHORIZATION_SCOPE_PLAIN_PORT = 80; private static Logger log = LoggerFactory.getLogger(HttpAsdcClient.class.getName()); private CloseableHttpClient httpClient = null; private String serverFqdn = null; private String authHeaderValue = ""; + private Boolean use_ssl = true; - public HttpAsdcClient(IConfiguration configuraion) { - this.serverFqdn = configuraion.getAsdcAddress(); + public HttpAsdcClient(IConfiguration configuration) { + this.serverFqdn = configuration.getAsdcAddress(); - String username = configuraion.getUser(); - String password = configuraion.getPassword(); - initSSL(username, password, configuraion.getKeyStorePath(), configuraion.getKeyStorePassword(), configuraion.activateServerTLSAuth()); + String username = configuration.getUser(); + String password = configuration.getPassword(); + this.use_ssl = configuration.isUseHttpsWithSDC(); + if (this.use_ssl) { + initSSL(username, password, configuration.getKeyStorePath(), configuration.getKeyStorePassword(), configuration.activateServerTLSAuth()); + } else { + CredentialsProvider credsProvider = new BasicCredentialsProvider(); + credsProvider.setCredentials(new AuthScope("localhost", AUTHORIZATION_SCOPE_PLAIN_PORT), new UsernamePasswordCredentials(username, password)); + httpClient = HttpClientBuilder.create().setDefaultCredentialsProvider(credsProvider).build(); + } String userNameAndPassword = username + ":" + password; this.authHeaderValue = "Basic " + Base64.getEncoder().encodeToString(userNameAndPassword.getBytes()); @@ -217,7 +227,7 @@ public class HttpAsdcClient implements IHttpAsdcClient { Pair<HttpAsdcResponse, CloseableHttpResponse> ret; CloseableHttpResponse httpResponse = null; HttpAsdcResponse response = null; - HttpPost httpPost = new HttpPost(HTTPS + serverFqdn + requestUrl); + HttpPost httpPost = new HttpPost(getScheme() + serverFqdn + requestUrl); List<Header> headers = addHeadersToHttpRequest(headersMap); for (Header header : headers) { httpPost.addHeader(header); @@ -268,7 +278,7 @@ public class HttpAsdcClient implements IHttpAsdcClient { public Pair<HttpAsdcResponse, CloseableHttpResponse> getRequest(String requestUrl, Map<String, String> headersMap, boolean closeTheRequest) { Pair<HttpAsdcResponse, CloseableHttpResponse> ret; CloseableHttpResponse httpResponse = null; - String url = HTTPS + serverFqdn + requestUrl; + String url = getScheme() + serverFqdn + requestUrl; log.debug("url to send {}", url); HttpGet httpGet = new HttpGet(url); List<Header> headers = addHeadersToHttpRequest(headersMap); @@ -354,4 +364,11 @@ public class HttpAsdcClient implements IHttpAsdcClient { return requestHeaders; } + private String getScheme() { + if (this.use_ssl) { + return HTTPS; + } + return HTTP; + } + } diff --git a/sdc-distribution-client/src/main/java/org/onap/sdc/impl/Configuration.java b/sdc-distribution-client/src/main/java/org/onap/sdc/impl/Configuration.java index 75e4acc..67071e9 100644 --- a/sdc-distribution-client/src/main/java/org/onap/sdc/impl/Configuration.java +++ b/sdc-distribution-client/src/main/java/org/onap/sdc/impl/Configuration.java @@ -42,6 +42,7 @@ public class Configuration implements IConfiguration { private boolean activateServerTLSAuth; private boolean filterInEmptyResources; private Boolean useHttpsWithDmaap; + private Boolean useHttpsWithSDC; private boolean consumeProduceStatusTopic; public Configuration(IConfiguration other) { @@ -55,6 +56,7 @@ public class Configuration implements IConfiguration { this.pollingTimeout = other.getPollingTimeout(); this.relevantArtifactTypes = other.getRelevantArtifactTypes(); this.user = other.getUser(); + this.useHttpsWithSDC = other.isUseHttpsWithSDC(); this.keyStorePath = other.getKeyStorePath(); this.keyStorePassword = other.getKeyStorePassword(); this.activateServerTLSAuth = other.activateServerTLSAuth(); @@ -74,6 +76,11 @@ public class Configuration implements IConfiguration { } @Override + public Boolean isUseHttpsWithSDC() { + return useHttpsWithSDC; + } + + @Override public String getUser() { return user; } @@ -190,6 +197,10 @@ public class Configuration implements IConfiguration { return this.useHttpsWithDmaap; } + public void setUseHttpsWithSDC(boolean useHttpsWithSDC) { + this.useHttpsWithSDC = useHttpsWithSDC; + } + public void setUseHttpsWithDmaap(boolean useHttpsWithDmaap) { this.useHttpsWithDmaap = useHttpsWithDmaap; } @@ -206,6 +217,7 @@ public class Configuration implements IConfiguration { + "asdcAddress=" + asdcAddress + ", user=" + user + ", password=" + password + + ", useHttpsWithSDC=" + useHttpsWithSDC + ", pollingInterval=" + pollingInterval + ", pollingTimeout=" + pollingTimeout + ", relevantArtifactTypes=" + relevantArtifactTypes diff --git a/sdc-distribution-client/src/main/java/org/onap/sdc/impl/DistributionClientImpl.java b/sdc-distribution-client/src/main/java/org/onap/sdc/impl/DistributionClientImpl.java index eda9cf6..5640540 100644 --- a/sdc-distribution-client/src/main/java/org/onap/sdc/impl/DistributionClientImpl.java +++ b/sdc-distribution-client/src/main/java/org/onap/sdc/impl/DistributionClientImpl.java @@ -545,6 +545,11 @@ public class DistributionClientImpl implements IDistributionClient { generateConsumerGroup(); } + //Default use HTTPS with SDC + if (conf.isUseHttpsWithSDC() == null) { + configuration.setUseHttpsWithSDC(true); + } + //Default use HTTPS with DMAAP if (conf.isUseHttpsWithDmaap() == null) { configuration.setUseHttpsWithDmaap(true); |