From 663b3dbd690ee9485fb9137cbd92df03f3ee947e Mon Sep 17 00:00:00 2001 From: Alan Braz <alanbraz@br.ibm.com> Date: Wed, 25 Mar 2020 17:58:57 -0300 Subject: [PATCH] add test creds --- .../org/opengroup/osdu/util/ElasticUtils.java | 64 ++++++++++--- testing/indexer-test-ibm/pom.xml | 38 +++++--- .../opengroup/osdu/util/IdentityUtilIBM.java | 7 -- .../org/opengroup/osdu/util/JwtTokenUtil.java | 90 ------------------- 4 files changed, 80 insertions(+), 119 deletions(-) delete mode 100644 testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/JwtTokenUtil.java 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 824656903..401ce191b 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 @@ -1,9 +1,22 @@ package org.opengroup.osdu.util; -import com.google.gson.Gson; -import lombok.extern.java.Log; +import java.io.IOException; +import java.security.SecureRandom; +import java.security.cert.X509Certificate; +import java.util.ArrayList; +import java.util.Base64; +import java.util.List; +import java.util.Map; +import java.util.logging.Level; + +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.ElasticsearchException; import org.elasticsearch.ElasticsearchStatusException; @@ -21,7 +34,11 @@ import org.elasticsearch.action.index.IndexRequest; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.support.master.AcknowledgedResponse; -import org.elasticsearch.client.*; +import org.elasticsearch.client.RequestOptions; +import org.elasticsearch.client.RestClient; +import org.elasticsearch.client.RestClientBuilder; +import org.elasticsearch.client.RestClientBuilder.HttpClientConfigCallback; +import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.cluster.metadata.MappingMetaData; import org.elasticsearch.common.collect.ImmutableOpenMap; import org.elasticsearch.common.settings.Settings; @@ -31,12 +48,9 @@ import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.search.builder.SearchSourceBuilder; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Base64; -import java.util.List; -import java.util.Map; -import java.util.logging.Level; +import com.google.gson.Gson; + +import lombok.extern.java.Log; /** @@ -277,8 +291,36 @@ public class ElasticUtils { new BasicHeader("xpack.security.transport.ssl.enabled", Boolean.toString(true)), new BasicHeader("Authorization", String.format("Basic %s", Base64.getEncoder().encodeToString(rawString.getBytes()))), }; - - builder.setDefaultHeaders(defaultHeaders); + + + SSLContext sslContext = SSLContext.getInstance("SSL"); + // set up a TrustManager that trusts everything + sslContext.init(null, new TrustManager[] { new X509TrustManager() { + public X509Certificate[] getAcceptedIssuers() { + System.out.println("getAcceptedIssuers ============="); + return null; + } + public void checkClientTrusted(X509Certificate[] certs, + String authType) { + System.out.println("checkClientTrusted ============="); + } + public void checkServerTrusted(X509Certificate[] certs, + String authType) { + System.out.println("checkServerTrusted ============="); + } + } }, new SecureRandom()); + + builder.setHttpClientConfigCallback(new HttpClientConfigCallback() { + @Override + public HttpAsyncClientBuilder customizeHttpClient( + HttpAsyncClientBuilder httpClientBuilder) { + return httpClientBuilder + .setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER) + .setSSLContext(sslContext); + } + }) + .setDefaultHeaders(defaultHeaders); + // TODO builder.setDefaultHeaders(defaultHeaders); restHighLevelClient = new RestHighLevelClient(builder); } catch (Exception e) { diff --git a/testing/indexer-test-ibm/pom.xml b/testing/indexer-test-ibm/pom.xml index 9fd8afd87..a7bf98e2d 100644 --- a/testing/indexer-test-ibm/pom.xml +++ b/testing/indexer-test-ibm/pom.xml @@ -166,21 +166,37 @@ <configuration> <trimStackTrace>false</trimStackTrace> <systemPropertyVariables> - <PROJECT_ID>1</PROJECT_ID> - <DOMAIN>ibm.com</DOMAIN> - <DEPLOY_ENV>empty</DEPLOY_ENV> - <STORAGE_URL>https://os-storage-ibm-osdu-r2.osduadev-a1c3eaf78a86806e299f5f3f207556f0-0000.us-south.containers.appdomain.cloud/api/storage/v2/</STORAGE_URL> - <LEGAL_URL>https://os-legal-ibm-osdu-r2.osduadev-a1c3eaf78a86806e299f5f3f207556f0-0000.us-south.containers.appdomain.cloud/api/legal/v1/</LEGAL_URL> - <ENTITLEMENT_URL>https://entitlements-osdu-r2.osduadev-a1c3eaf78a86806e299f5f3f207556f0-0000.us-south.containers.appdomain.cloud/api/entitlements/v1/</ENTITLEMENT_URL> - <TENANT_NAME>opendes</TENANT_NAME> - <PUBSUB_TOKEN>token_not_implemented</PUBSUB_TOKEN> + <KEYCLOAK_URL>keycloak-osdu-r2.osduadev-a1c3eaf78a86806e299f5f3f207556f0-0000.us-south.containers.appdomain.cloud</KEYCLOAK_URL> <KEYCLOAK_REALM>OSDU</KEYCLOAK_REALM> <KEYCLOAK_CLIENT_ID>osdu-login</KEYCLOAK_CLIENT_ID> <AUTH_USER_ACCESS>osdu-user</AUTH_USER_ACCESS> - <AUTH_USER_ACCESS_PASSWORD>CHANGE_ME</AUTH_USER_ACCESS_PASSWORD> - <AUTH_USER_NO_ACCESS>osdu-no-roles</AUTH_USER_NO_ACCESS> - <AUTH_USER_NO_ACCESS_PASSWORD>CHANGE_ME</AUTH_USER_NO_ACCESS_PASSWORD> + <AUTH_USER_ACCESS_PASSWORD>password1</AUTH_USER_ACCESS_PASSWORD> + + <OTHER_RELEVANT_DATA_COUNTRIES>US</OTHER_RELEVANT_DATA_COUNTRIES> + <LEGAL_TAG>opendes-public-usa-dataset</LEGAL_TAG> + <INTEGRATION_TEST_AUDIENCE>dontknowifneeded</INTEGRATION_TEST_AUDIENCE> + <SEARCH_INTEGRATION_TESTER>dontknowifneeded</SEARCH_INTEGRATION_TESTER> + <DEFAULT_DATA_PARTITION_ID_TENANT1>opendes</DEFAULT_DATA_PARTITION_ID_TENANT1> + <DEFAULT_DATA_PARTITION_ID_TENANT2>tenant2</DEFAULT_DATA_PARTITION_ID_TENANT2> + <!-- has to be the same ElasticSearch used by storage --> + <!-- <ELASTIC_HOST>85e9c617-e295-460e-a2ff-048b18a76b22.blijs0dd0dcr4f55oehg.databases.appdomain.cloud</ELASTIC_HOST> + <ELASTIC_USER_NAME>ibm_cloud_a3207231_f8ea_4ca5_9e7e_b63badc2e544</ELASTIC_USER_NAME> + <ELASTIC_PASSWORD>61e86fddfd5b9385510e961bec444d95799258d41b635422e59b073610d7f62d</ELASTIC_PASSWORD> + <ELASTIC_PORT>30842</ELASTIC_PORT> --> + <ELASTIC_HOST>elasticsearch-instance-osdu-es.osduadev-a1c3eaf78a86806e299f5f3f207556f0-0000.us-south.containers.appdomain.cloud</ELASTIC_HOST> + <ELASTIC_USER_NAME>elastic-internal</ELASTIC_USER_NAME> + <ELASTIC_PASSWORD>mp7m94xrgz4t7rz758p4k79m</ELASTIC_PASSWORD> + <ELASTIC_PORT>443</ELASTIC_PORT> + + <INDEXER_HOST></INDEXER_HOST> + <!-- <SEARCH_HOST>https://os-search-ibm-osdu-r2.osduadev-a1c3eaf78a86806e299f5f3f207556f0-0000.us-south.containers.appdomain.cloud/api/search/v2/</SEARCH_HOST> + <STORAGE_HOST>https://os-storage-ibm-osdu-r2.osduadev-a1c3eaf78a86806e299f5f3f207556f0-0000.us-south.containers.appdomain.cloud/api/storage/v2/</STORAGE_HOST> --> + <SEARCH_HOST>http://localhost:8085/api/search/v2/</SEARCH_HOST> + <STORAGE_HOST>http://localhost:8082/api/storage/v2/</STORAGE_HOST> + + <ENTITLEMENTS_DOMAIN>ibm.com</ENTITLEMENTS_DOMAIN> + </systemPropertyVariables> </configuration> </plugin> 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/IdentityUtilIBM.java index 683f71934..37b909cfd 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/IdentityUtilIBM.java @@ -15,11 +15,4 @@ public class IdentityUtilIBM { } } - /* - * public static String getTokenForUserWithNoAccess(){ try { String user = - * System.getProperty("AUTH_USER_NO_ACCESS"); String pass = - * System.getProperty("AUTH_USER_NO_ACCESS_PASSWORD"); return - * KeyCloakProvider.getToken(user, pass); } catch (IOException e) { - * e.printStackTrace(); return null; } } - */ } diff --git a/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/JwtTokenUtil.java b/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/JwtTokenUtil.java deleted file mode 100644 index 0c526006c..000000000 --- a/testing/indexer-test-ibm/src/test/java/org/opengroup/osdu/util/JwtTokenUtil.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * package org.opengroup.osdu.util; - * - * import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; import - * com.google.api.client.json.JsonFactory; import - * com.google.api.client.json.jackson2.JacksonFactory; import - * com.google.api.client.json.webtoken.JsonWebSignature; import - * com.google.api.client.json.webtoken.JsonWebToken; import - * com.google.api.client.util.Clock; import com.google.common.base.Strings; - * import com.google.gson.Gson; import lombok.Data; import - * org.apache.commons.io.Charsets; import org.apache.commons.io.IOUtils; import - * org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import - * org.apache.http.client.entity.UrlEncodedFormEntity; import - * org.apache.http.client.methods.HttpPost; import - * org.apache.http.impl.client.CloseableHttpClient; import - * org.apache.http.impl.client.HttpClientBuilder; import - * org.apache.http.message.BasicNameValuePair; - * - * import java.io.ByteArrayInputStream; import java.io.IOException; import - * java.io.InputStream; import java.security.GeneralSecurityException; import - * java.util.ArrayList; import java.util.Base64; import java.util.List; - * - * class JwtTokenUtil { - * - * private static String accessToken; - * - * static String getAccessToken() throws IOException { - * - * if (Strings.isNullOrEmpty(accessToken)) { accessToken = - * getServiceAccountAccessToken(getJwtForIntegrationTesterAccount()); } return - * accessToken; } - * - * private static String getServiceAccountAccessToken(String key) throws - * IOException { - * - * try (CloseableHttpClient httpClient = HttpClientBuilder.create().build()) { - * - * List<NameValuePair> parameters = new ArrayList<>(); parameters.add(new - * BasicNameValuePair("grant_type", - * "urn:ietf:params:oauth:grant-type:jwt-bearer")); parameters.add(new - * BasicNameValuePair("assertion", key)); - * - * HttpPost postRequest = new - * HttpPost("https://www.googleapis.com/oauth2/v4/token"); - * postRequest.addHeader("Content-Type", "application/x-www-form-urlencoded"); - * postRequest.setEntity(new UrlEncodedFormEntity(parameters)); - * - * HttpResponse response = httpClient.execute(postRequest); String - * responseContent = IOUtils.toString(response.getEntity().getContent(), - * Charsets.toCharset("UTF-8")); - * - * JwtTokenUtil.ResponseToken responseToken = new - * Gson().fromJson(responseContent, JwtTokenUtil.ResponseToken.class); - * - * return responseToken.getId_token(); } } - * - * private static String getJwtForIntegrationTesterAccount() throws IOException - * { String serviceAccountFile = Config.getKeyValue(); return - * getJwt(serviceAccountFile); } - * - * private static String getJwt(String serviceAccountFile) throws IOException { - * - * String targetAudience = Config.getTargetAudience(); long currentTime = - * Clock.SYSTEM.currentTimeMillis(); - * - * InputStream stream = new - * ByteArrayInputStream(Base64.getDecoder().decode(serviceAccountFile)); - * GoogleCredential credential = GoogleCredential.fromStream(stream); - * - * JsonWebSignature.Header header = new JsonWebSignature.Header(); - * header.setAlgorithm("RS256"); header.setType("JWT"); - * header.setKeyId(credential.getServiceAccountPrivateKeyId()); - * - * JsonWebSignature.Payload payload = new JsonWebToken.Payload(); - * payload.setIssuedAtTimeSeconds(currentTime / 1000); - * payload.setExpirationTimeSeconds(currentTime / 1000 + 3600); - * payload.setAudience("https://www.googleapis.com/oauth2/v4/token"); - * payload.setIssuer(credential.getServiceAccountId()); - * payload.set("target_audience", targetAudience); - * - * JsonFactory jsonFactory = JacksonFactory.getDefaultInstance(); String - * signedJwt = null; try { signedJwt = - * JsonWebSignature.signUsingRsaSha256(credential.getServiceAccountPrivateKey(), - * jsonFactory, header, payload); } catch (GeneralSecurityException e) { - * e.printStackTrace(); } - * - * return signedJwt; } - * - * @Data class ResponseToken { public String id_token; } } - */ \ No newline at end of file -- GitLab