diff --git a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/util/ElasticUtils.java b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/util/ElasticUtils.java index 230f44d2e13228dac9e0d8a39ff110570220103c..18a138d0b3624b8a2c9bca77d1c0be0416603806 100644 --- a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/util/ElasticUtils.java +++ b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/util/ElasticUtils.java @@ -260,7 +260,7 @@ public class ElasticUtils { private RestHighLevelClient createClient(String username, String password, String host) { RestHighLevelClient restHighLevelClient; - int port = Config.PORT; + int port = Config.getPort(); try { String rawString = String.format("%s:%s", username, password); diff --git a/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/step_definitions/index/record/Steps.java b/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/step_definitions/index/record/Steps.java index 126934d41fd3689a45218c6c78fe575741c33aa3..518b2b6f970c5c07b918d7e0ed31aabe819dcdae 100644 --- a/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/step_definitions/index/record/Steps.java +++ b/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/step_definitions/index/record/Steps.java @@ -1,7 +1,6 @@ package org.opengroup.osdu.step_definitions.index.record; import org.opengroup.osdu.common.RecordSteps; -import org.opengroup.osdu.util.ElasticUtilsIBM; import org.opengroup.osdu.util.IBMHTTPClient; import cucumber.api.DataTable; @@ -16,7 +15,7 @@ import lombok.extern.java.Log; public class Steps extends RecordSteps { public Steps() { - super(new IBMHTTPClient(), new ElasticUtilsIBM()); + super(new IBMHTTPClient()); } @Before diff --git a/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/ElasticUtilsIBM.java b/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/ElasticUtilsIBM.java deleted file mode 100644 index 5174b7c932b7629c6f67747b3c45525ee2cb0812..0000000000000000000000000000000000000000 --- a/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/ElasticUtilsIBM.java +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright 2020 IBM Corp. 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. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package org.opengroup.osdu.util; - -import java.security.SecureRandom; -import java.security.cert.X509Certificate; -import java.util.Base64; - -import javax.net.ssl.SSLContext; -import javax.net.ssl.TrustManager; -import javax.net.ssl.X509TrustManager; - -import org.apache.http.Header; -import org.apache.http.HttpHost; -import org.apache.http.conn.ssl.SSLSocketFactory; -import org.apache.http.impl.nio.client.HttpAsyncClientBuilder; -import org.apache.http.message.BasicHeader; -import org.elasticsearch.client.RestClient; -import org.elasticsearch.client.RestClientBuilder; -import org.elasticsearch.client.RestClientBuilder.HttpClientConfigCallback; -import org.elasticsearch.client.RestHighLevelClient; - -import lombok.extern.java.Log; - -/** - * All util methods to use elastic apis for tests - * It should be used only in the Setup or TearDown phase of the test - */ -@Log -public class ElasticUtilsIBM extends ElasticUtils { - - private static final int REST_CLIENT_CONNECT_TIMEOUT = 5000; - private static final int REST_CLIENT_SOCKET_TIMEOUT = 60000; - private static final int REST_CLIENT_RETRY_TIMEOUT = 60000; - - public ElasticUtilsIBM() { - super(); - } - - protected RestHighLevelClient createClient(String username, String password, String host) { - - RestHighLevelClient restHighLevelClient; - int port = Config.getPort(); - try { - String rawString = String.format("%s:%s", username, password); - RestClientBuilder builder = RestClient.builder(new HttpHost(host, port, "https")); - builder.setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder.setConnectTimeout(REST_CLIENT_CONNECT_TIMEOUT) - .setSocketTimeout(REST_CLIENT_SOCKET_TIMEOUT)); - builder.setMaxRetryTimeoutMillis(REST_CLIENT_RETRY_TIMEOUT); - - Header[] defaultHeaders = new Header[]{ - new BasicHeader("client.transport.nodes_sampler_interval", "30s"), - new BasicHeader("client.transport.ping_timeout", "30s"), - new BasicHeader("client.transport.sniff", "false"), - new BasicHeader("request.headers.X-Found-Cluster", Config.getElasticHost()), - new BasicHeader("cluster.name", Config.getElasticHost()), - new BasicHeader("xpack.security.transport.ssl.enabled", Boolean.toString(true)), - new BasicHeader("Authorization", String.format("Basic %s", Base64.getEncoder().encodeToString(rawString.getBytes()))), - }; - - - SSLContext sslContext = SSLContext.getInstance("SSL"); - // set up a TrustManager that trusts everything - sslContext.init(null, new TrustManager[]{new X509TrustManager() { - public X509Certificate[] getAcceptedIssuers() { - return null; - } - - public void checkClientTrusted(X509Certificate[] certs, String authType) { - } - - public void checkServerTrusted(X509Certificate[] certs, String authType) { - } - }}, new SecureRandom()); - - builder.setHttpClientConfigCallback(new HttpClientConfigCallback() { - - public HttpAsyncClientBuilder customizeHttpClient( - HttpAsyncClientBuilder httpClientBuilder) { - return httpClientBuilder - .setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER) - .setSSLContext(sslContext); - } - }) - .setDefaultHeaders(defaultHeaders); - - restHighLevelClient = new RestHighLevelClient(builder); - - } catch (Exception e) { - throw new AssertionError("Setup elastic error"); - } - return restHighLevelClient; - } -} \ No newline at end of file diff --git a/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/IBMHTTPClient.java b/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/IBMHTTPClient.java index c313c3833f037039a61f939ad31af6a04870f031..e3fcf2dc27a12f2fadd9c58b1f1e2a77e9d1273b 100644 --- a/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/IBMHTTPClient.java +++ b/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/IBMHTTPClient.java @@ -14,12 +14,11 @@ package org.opengroup.osdu.util; +import com.google.common.base.Strings; + import lombok.ToString; import lombok.extern.java.Log; -import com.google.common.base.Strings; - -@Log @ToString public class IBMHTTPClient extends HTTPClient { private static String token = null; @@ -28,7 +27,7 @@ public class IBMHTTPClient extends HTTPClient { public synchronized String getAccessToken() { if(Strings.isNullOrEmpty(token)) { try { - token = "Bearer " + IdentityUtilIBM.getAccessToken(); + token = "Bearer " + IdentityClient.getTokenForUserWithAccess(); } catch (Exception e) { e.printStackTrace(); } diff --git a/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/IdentityUtilIBM.java b/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/IdentityClient.java similarity index 79% rename from testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/IdentityUtilIBM.java rename to testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/IdentityClient.java index 1f2fdb06f2a0a28de33481be957bfc1a875716f3..4d37818342c915891118cc5714bc4133f2086d22 100644 --- a/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/IdentityUtilIBM.java +++ b/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/IdentityClient.java @@ -16,12 +16,12 @@ package org.opengroup.osdu.util; import java.io.IOException; -public class IdentityUtilIBM { +public class IdentityClient { - public static String getAccessToken(){ + public static String getTokenForUserWithAccess(){ try { - String user = System.getProperty("AUTH_USER_ACCESS"); - String pass = System.getProperty("AUTH_USER_ACCESS_PASSWORD"); + String user = System.getProperty("AUTH_USER_ACCESS", System.getenv("AUTH_USER_ACCESS")); + String pass = System.getProperty("AUTH_USER_ACCESS_PASSWORD", System.getenv("AUTH_USER_ACCESS_PASSWORD")); return KeyCloakProvider.getToken(user, pass); } catch (IOException e) { e.printStackTrace(); diff --git a/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/KeyCloakProvider.java b/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/KeyCloakProvider.java index d890d9a99b609e25dbe777c5f14fec9aa8f1846b..cbf43589a06c7ac679e08d7a9baee67536935b26 100644 --- a/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/KeyCloakProvider.java +++ b/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/KeyCloakProvider.java @@ -21,18 +21,10 @@ import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.URL; import java.net.URLEncoder; -import java.security.KeyManagementException; -import java.security.NoSuchAlgorithmException; -import java.security.cert.X509Certificate; import java.util.HashMap; import java.util.Map; -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 com.google.gson.Gson; import com.google.gson.JsonObject; @@ -41,53 +33,16 @@ public class KeyCloakProvider { private static String url; private static String realm; - private static String client_id; + private static String client_id, client_secret; private static String grant_type = "password"; static { - disableSslVerification(); - url = System.getProperty("KEYCLOAK_URL"); - realm = System.getProperty("KEYCLOAK_REALM"); - client_id = System.getProperty("KEYCLOAK_CLIENT_ID"); + url = System.getProperty("KEYCLOAK_URL", System.getenv("KEYCLOAK_URL")); + realm = System.getProperty("KEYCLOAK_REALM", System.getenv("KEYCLOAK_REALM")); + client_id = System.getProperty("KEYCLOAK_CLIENT_ID", System.getenv("KEYCLOAK_CLIENT_ID")); + client_secret = System.getProperty("KEYCLOAK_CLIENT_SECRET", System.getenv("KEYCLOAK_CLIENT_SECRET")); } - private static void disableSslVerification() { - try - { - // Create a trust manager that does not validate certificate chains - TrustManager[] trustAllCerts = new TrustManager[] {new X509TrustManager() { - public java.security.cert.X509Certificate[] getAcceptedIssuers() { - return null; - } - public void checkClientTrusted(X509Certificate[] certs, String authType) { - } - public void checkServerTrusted(X509Certificate[] certs, String authType) { - } - } - }; - - // Install the all-trusting trust manager - SSLContext sc = SSLContext.getInstance("SSL"); - sc.init(null, trustAllCerts, new java.security.SecureRandom()); - HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); - - // Create all-trusting host name verifier - HostnameVerifier allHostsValid = new HostnameVerifier() { - public boolean verify(String hostname, SSLSession session) { - return true; - } - }; - - // Install the all-trusting host verifier - HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid); - } catch (NoSuchAlgorithmException e) { - e.printStackTrace(); - } catch (KeyManagementException e) { - e.printStackTrace(); - } - } - - public static String getToken(String user, String pwd) throws IOException { String token_endpoint = String.format("https://%s/auth/realms/%s/protocol/openid-connect/token", url, realm); URL url = new URL(token_endpoint); @@ -98,6 +53,7 @@ public class KeyCloakProvider { Map<String, String> parameters = new HashMap<>(); parameters.put("grant_type", grant_type); parameters.put("client_id", client_id); + parameters.put("client_secret", client_secret); parameters.put("username", user); parameters.put("password", pwd); diff --git a/testing/pom.xml b/testing/pom.xml index 1bac11ececef04b5fad0f21269dd96c5b4f59a97..14d9179b9fc89a0849ae71da53b43268d2a7897a 100644 --- a/testing/pom.xml +++ b/testing/pom.xml @@ -36,6 +36,7 @@ <module>indexer-test-aws</module> <module>indexer-test-azure</module> <module>indexer-test-gcp</module> + <module>indexer-test-ibm</module> </modules> <repositories>