aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTait,Trevor(rt0435) <rtait@amdocs.com>2018-12-04 14:22:23 -0500
committerTait,Trevor(rt0435) <rtait@amdocs.com>2018-12-04 14:22:39 -0500
commitbe36287ac8e5a8d28ad744cf5271e5889355ba58 (patch)
treeba89c55f23eca71377840cd8b631a217af3f27a2
parent824d37b3e880f60cbaecc1c6850732cedb55c5ed (diff)
Use SSL client for Micro Service
Update POMBA Network Discovery Context Builder to use HTTPS when talking to Network Discovery Micro Service. Also cleaned up some method and variable names that are incompatible with ONAP. Issue-ID: LOG-878 Change-Id: Id9a6fc3608daa1fce164a0d24b87f4464c3a76bc Signed-off-by: Tait,Trevor(rt0435) <rtait@amdocs.com>
-rw-r--r--config/application.properties4
-rw-r--r--src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/JerseyConfiguration.java56
-rw-r--r--src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/NdctxbConfiguration.java2
-rw-r--r--src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/service/SpringServiceImpl.java5
-rw-r--r--src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/unittest/service/NetworkDiscoveryContextBuilderTest.java33
-rw-r--r--src/test/resources/junit/SD_response.json (renamed from src/test/resources/SD_response.json)0
6 files changed, 68 insertions, 32 deletions
diff --git a/config/application.properties b/config/application.properties
index b9b8601..af0ffa0 100644
--- a/config/application.properties
+++ b/config/application.properties
@@ -36,8 +36,8 @@ serviceDecomposition.password=OBF:1u2a1toa1w8v1tok1u30
# Network Discovery Micro Service REST Client Configuration
networkDiscoveryMicroService.host=10.147.112.148
-networkDiscoveryMicroService.port=8080
-networkDiscoveryMicroService.httpProtocol=http
+networkDiscoveryMicroService.port=8443
+networkDiscoveryMicroService.httpProtocol=https
networkDiscoveryMicroService.networkDiscoveryPath=/network-discovery/v1/network/resource
# Wait for Network Discovery MicroService response in milliseconds
networkDiscoveryMicroService.responseTimeOutInMilliseconds=60000
diff --git a/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/JerseyConfiguration.java b/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/JerseyConfiguration.java
index df7c8a8..2bec9ad 100644
--- a/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/JerseyConfiguration.java
+++ b/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/JerseyConfiguration.java
@@ -17,12 +17,25 @@
*/
package org.onap.pomba.contextbuilder.networkdiscovery;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.MapperFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
+import java.security.cert.X509Certificate;
import java.util.logging.Logger;
-
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSession;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
-
import org.glassfish.jersey.client.ClientConfig;
import org.glassfish.jersey.logging.LoggingFeature;
import org.glassfish.jersey.server.ResourceConfig;
@@ -33,12 +46,6 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.MapperFeature;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
-
@Component
@ApplicationPath("/")
public class JerseyConfiguration extends ResourceConfig {
@@ -66,4 +73,37 @@ public class JerseyConfiguration extends ResourceConfig {
public Client jerseyClient() {
return ClientBuilder.newClient(new ClientConfig());
}
+
+ @Bean
+ public Client jerseySslClient() throws NoSuchAlgorithmException, KeyManagementException {
+
+ ClientConfig clientConfig = new ClientConfig();
+ TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
+ public X509Certificate[] getAcceptedIssuers() {
+ return null;
+ }
+
+ public void checkClientTrusted(X509Certificate[] certs, String authType) {
+ }
+
+ public void checkServerTrusted(X509Certificate[] certs, String authType) {
+ }
+ } };
+
+ SSLContext sc = SSLContext.getInstance("TLS");
+ sc.init(null, trustAllCerts, new SecureRandom());
+ HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
+
+ ClientBuilder.newClient(clientConfig);
+
+ return ClientBuilder.newBuilder()
+ .sslContext(sc)
+ .hostnameVerifier(new HostnameVerifier() {
+ public boolean verify(String s, SSLSession sslSession) {
+ return true;
+ }
+ })
+ .withConfig(clientConfig).build();
+ }
+
}
diff --git a/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/NdctxbConfiguration.java b/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/NdctxbConfiguration.java
index 7781d1a..a600db5 100644
--- a/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/NdctxbConfiguration.java
+++ b/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/NdctxbConfiguration.java
@@ -18,13 +18,11 @@
package org.onap.pomba.contextbuilder.networkdiscovery;
-import java.net.InetAddress;
import java.util.Arrays;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.StreamSupport;
-
import org.eclipse.jetty.util.security.Password;
import org.onap.pomba.contextbuilder.networkdiscovery.exception.DiscoveryException;
import org.slf4j.Logger;
diff --git a/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/service/SpringServiceImpl.java b/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/service/SpringServiceImpl.java
index d6010c4..58d13b7 100644
--- a/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/service/SpringServiceImpl.java
+++ b/src/main/java/org/onap/pomba/contextbuilder/networkdiscovery/service/SpringServiceImpl.java
@@ -152,6 +152,9 @@ public class SpringServiceImpl implements SpringService {
@Autowired
private Client jerseyClient;
+ @Autowired
+ private Client jerseySslClient;
+
private static final ReentrantLock lock = new ReentrantLock();
@Override
@@ -543,7 +546,7 @@ public class SpringServiceImpl implements SpringService {
callbackUrlStr, partner_name);
try {
- Response response = jerseyClient.target(networkDiscoveryUrl)
+ Response response = jerseySslClient.target(networkDiscoveryUrl)
.queryParam(NETWORK_DISCOVERY_FIND_RESOURCE_BY_TYPE_REST_REQUEST_ID, requestId)
.queryParam(NETWORK_DISCOVERY_FIND_RESOURCE_BY_TYPE_REST_RESOURCE_TYPE, resourceType)
.queryParam(NETWORK_DISCOVERY_FIND_RESOURCE_BY_TYPE_REST_RESOURCE_ID, resourceId)
diff --git a/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/unittest/service/NetworkDiscoveryContextBuilderTest.java b/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/unittest/service/NetworkDiscoveryContextBuilderTest.java
index 1705bde..2c28ff3 100644
--- a/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/unittest/service/NetworkDiscoveryContextBuilderTest.java
+++ b/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/unittest/service/NetworkDiscoveryContextBuilderTest.java
@@ -21,11 +21,9 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
-import com.github.jknack.handlebars.internal.Files;
import com.github.tomakehurst.wiremock.client.WireMock;
import com.github.tomakehurst.wiremock.junit.WireMockRule;
import com.github.tomakehurst.wiremock.matching.UrlPattern;
-import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
@@ -67,6 +65,7 @@ import org.springframework.test.context.web.WebAppConfiguration;
@SpringBootTest
@TestPropertySource(properties = {"serviceDecomposition.host=localhost", "serviceDecomposition.port=3333",
"networkDiscoveryMicroService.host=localhost", "networkDiscoveryMicroService.port=9808",
+ "networkDiscoveryMicroService.httpProtocol=http",
"networkDiscoveryMicroService.responseTimeOutInMilliseconds=1000"})
public class NetworkDiscoveryContextBuilderTest {
@@ -137,12 +136,8 @@ public class NetworkDiscoveryContextBuilderTest {
public void testVerifyServiceDecomposition() throws Exception {
String urlStr = "/service-decomposition/service/context?serviceInstanceId=" + serviceInstanceId;
-
- File file = new File(ClassLoader.getSystemResource("SD_response.json").getFile());
- String sdResonse = Files.read(file);
-
- this.serviceDecompositionRule.stubFor(get(urlStr).willReturn(okJson(sdResonse)));
- addResponse_any("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule);
+ addResponse(urlStr, "junit/SD_response.json", serviceDecompositionRule);
+ addResponseAny("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule);
Response response = this.restService.getContext(httpServletRequest, authorization, partnerName, transactionId,
null, null, serviceInstanceId, null, null);
assertEquals(Status.OK.getStatusCode(), response.getStatus());
@@ -153,7 +148,7 @@ public class NetworkDiscoveryContextBuilderTest {
String serviceDecompUrl = "/service-decomposition/service/context?serviceInstanceId=" + serviceInstanceId;
addResponse(serviceDecompUrl, "junit/serviceDecomposition-1.json", serviceDecompositionRule);
- addResponse_any("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule);
+ addResponseAny("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule);
Response response = this.restService.getContext(httpServletRequest, authorization, partnerName, transactionId,
null, null, serviceInstanceId, null, null);
@@ -191,7 +186,7 @@ public class NetworkDiscoveryContextBuilderTest {
public void testVerifyNoPartnerNameWithFromAppId() throws Exception {
String serviceDecompUrl = "/service-decomposition/service/context?serviceInstanceId=" + serviceInstanceId;
addResponse(serviceDecompUrl, "junit/serviceDecomposition-1.json", serviceDecompositionRule);
- addResponse_any("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule);
+ addResponseAny("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule);
Response response = this.restService.getContext(httpServletRequest, authorization, null, transactionId,
partnerName, null, serviceInstanceId, null, null);
@@ -202,7 +197,7 @@ public class NetworkDiscoveryContextBuilderTest {
public void testVerifyNoRequestIdNoTransactionId() throws Exception {
String serviceDecompUrl = "/service-decomposition/service/context?serviceInstanceId=" + serviceInstanceId;
addResponse(serviceDecompUrl, "junit/serviceDecomposition-1.json", serviceDecompositionRule);
- addResponse_any("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule);
+ addResponseAny("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule);
Response response = this.restService.getContext(httpServletRequest, authorization, partnerName, null, null,
null, serviceInstanceId, null, null);
@@ -213,7 +208,7 @@ public class NetworkDiscoveryContextBuilderTest {
public void testVerifyNoPartnerNameNoFromAppId() throws Exception {
String serviceDecompUrl = "/service-decomposition/service/context?serviceInstanceId=" + serviceInstanceId;
addResponse(serviceDecompUrl, "junit/serviceDecomposition-1.json", serviceDecompositionRule);
- addResponse_any("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule);
+ addResponseAny("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule);
Response response = this.restService.getContext(httpServletRequest, authorization, null, transactionId, null,
null, serviceInstanceId, null, null);
@@ -224,7 +219,7 @@ public class NetworkDiscoveryContextBuilderTest {
public void testVerifyNoRequestIdWithTransactionId() throws Exception {
String serviceDecompUrl = "/service-decomposition/service/context?serviceInstanceId=" + serviceInstanceId;
addResponse(serviceDecompUrl, "junit/serviceDecomposition-1.json", serviceDecompositionRule);
- addResponse_any("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule);
+ addResponseAny("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule);
Response response = this.restService.getContext(httpServletRequest, authorization, partnerName, null, null,
transactionId, serviceInstanceId, null, null);
@@ -236,7 +231,7 @@ public class NetworkDiscoveryContextBuilderTest {
thisMock.stubFor(get(path).willReturn(okJson(payload)));
}
- private void addResponse_any(String classpathResource, WireMockRule thisMock) throws IOException {
+ private void addResponseAny(String classpathResource, WireMockRule thisMock) throws IOException {
String payload = readFully(ClassLoader.getSystemResourceAsStream(classpathResource));
UrlPattern tPath = WireMock.anyUrl();
thisMock.stubFor(get(tPath).willReturn(okJson(payload)));
@@ -327,15 +322,15 @@ public class NetworkDiscoveryContextBuilderTest {
private void simulateNetworkDiscoveryInfoList() {
String requestId2 = "2131__2";
- List<String> related_request_list = new ArrayList<>();
- related_request_list.add(requestId);
- related_request_list.add(requestId2);
+ List<String> relatedRequestList = new ArrayList<>();
+ relatedRequestList.add(requestId);
+ relatedRequestList.add(requestId2);
NetworkDiscoveryRspInfo notif1 = new NetworkDiscoveryRspInfo();
notif1.setRequestId(requestId);
notif1.setResourceType(resourceType);
notif1.setResourceId(resourceId);
- notif1.setRelatedRequestIdList(related_request_list);
+ notif1.setRelatedRequestIdList(relatedRequestList);
NetworkDiscoveryInfoAccess networkDiscoveryInfoAccess = new NetworkDiscoveryInfoAccess();
networkDiscoveryInfoAccess.updateList(requestId, notif1);
@@ -344,7 +339,7 @@ public class NetworkDiscoveryContextBuilderTest {
notif2.setRequestId(requestId2);
notif2.setResourceType(resourceType);
notif2.setResourceId(resourceId);
- notif2.setRelatedRequestIdList(related_request_list);
+ notif2.setRelatedRequestIdList(relatedRequestList);
networkDiscoveryInfoAccess.updateList(requestId2, notif2);
}
diff --git a/src/test/resources/SD_response.json b/src/test/resources/junit/SD_response.json
index d4db960..d4db960 100644
--- a/src/test/resources/SD_response.json
+++ b/src/test/resources/junit/SD_response.json