From a73b244e36e992b5bc53cafb4a56b8c9c8c5fce1 Mon Sep 17 00:00:00 2001 From: Rustam_Lotsmanenko Date: Wed, 1 Sep 2021 13:51:27 +0400 Subject: [PATCH 1/7] Hotfix (for GCP only) to continue using JWTs passed through requests (GONRG-3223) --- provider/csv-parser-gcp/README.md | 1 + .../auth/token/ServiceAccountAuthToken.java | 13 +---- .../csvparser/test/core/IngestionSteps.java | 47 ++++++++++++++----- .../osdu/csvparser/test/core/util/Config.java | 5 ++ 4 files changed, 42 insertions(+), 24 deletions(-) diff --git a/provider/csv-parser-gcp/README.md b/provider/csv-parser-gcp/README.md index d7be54a5..cdebbcca 100644 --- a/provider/csv-parser-gcp/README.md +++ b/provider/csv-parser-gcp/README.md @@ -166,6 +166,7 @@ You will need to have the following environment variables defined. | `DMS_KIND` | `kind` | Dms kind for IT configuration | no | -- | | `DMS_ACL` | `acl` | Dms acl for IT configuration | no | -- | | `DMS_LEGAL_TAG` | `legal-tag` | Dms legal tag for IT configuration | no | -- | +| `VENDOR` | `GCP` | Must be set to `GCP` in order to use a specific gcp flow, without directly using the service account inside the csv-parser | no | -- | **Entitlements configuration for integration accounts** diff --git a/provider/csv-parser-gcp/src/main/java/org/opengroup/osdu/csvparser/provider/gcp/auth/token/ServiceAccountAuthToken.java b/provider/csv-parser-gcp/src/main/java/org/opengroup/osdu/csvparser/provider/gcp/auth/token/ServiceAccountAuthToken.java index 2386f872..91b67d02 100644 --- a/provider/csv-parser-gcp/src/main/java/org/opengroup/osdu/csvparser/provider/gcp/auth/token/ServiceAccountAuthToken.java +++ b/provider/csv-parser-gcp/src/main/java/org/opengroup/osdu/csvparser/provider/gcp/auth/token/ServiceAccountAuthToken.java @@ -1,14 +1,10 @@ package org.opengroup.osdu.csvparser.provider.gcp.auth.token; import org.opengroup.osdu.core.common.model.http.AppException; -import org.opengroup.osdu.core.gcp.auth.GoogleServiceAccount; import org.opengroup.osdu.csvparser.auth.token.AuthJwtToken; import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.HttpStatus; import org.springframework.stereotype.Component; -import java.io.IOException; - @Component public class ServiceAccountAuthToken implements AuthJwtToken { @@ -20,14 +16,7 @@ public class ServiceAccountAuthToken implements AuthJwtToken { @Override public String getAuthToken() throws AppException { - try { - return new GoogleServiceAccount(serviceAccount).getAuthToken(audience); - } catch (IOException e) { - throw new AppException( - HttpStatus.UNAUTHORIZED.value(), - HttpStatus.UNAUTHORIZED.getReasonPhrase(), - "The user is unauthorized to perform this action"); - } + return null; } } diff --git a/testing/csv-parser-core-test/src/main/java/org/opengroup/osdu/csvparser/test/core/IngestionSteps.java b/testing/csv-parser-core-test/src/main/java/org/opengroup/osdu/csvparser/test/core/IngestionSteps.java index ad7c8601..c3fabee8 100644 --- a/testing/csv-parser-core-test/src/main/java/org/opengroup/osdu/csvparser/test/core/IngestionSteps.java +++ b/testing/csv-parser-core-test/src/main/java/org/opengroup/osdu/csvparser/test/core/IngestionSteps.java @@ -16,11 +16,11 @@ import org.json.JSONArray; import org.json.JSONObject; import org.junit.Assert; import org.opengroup.osdu.csvparser.flow.model.StepType; -import org.opengroup.osdu.csvparser.flow.model.StepType; import org.opengroup.osdu.csvparser.ingestion.model.IngestionRequest; import org.opengroup.osdu.csvparser.search.model.SearchResponse; import org.opengroup.osdu.csvparser.splitter.model.SplitterConfig; import org.opengroup.osdu.csvparser.test.core.provider.*; +import org.opengroup.osdu.csvparser.test.core.util.Config; import org.opengroup.osdu.csvparser.util.ResourceUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -45,7 +45,9 @@ import static org.awaitility.pollinterval.IterativePollInterval.iterative; import static org.hamcrest.Matchers.*; import static org.opengroup.osdu.csvparser.util.ResourceUtil.load; - +//TODO it would be better to move Cucumber hooks into provider modules +// (Cucumber doesn't allow to override classes that contain Cucumber hooks ) +// http://skybert.net/java/bdd-in-java-with-cucumber/ @SuppressWarnings({"unchecked", "rawtypes"}) @Log public class IngestionSteps { @@ -345,23 +347,44 @@ public class IngestionSteps { @When("Start Ingestion") public void startIngestion() { + if(Config.getVendor().equals("GCP")){ + csvParserClient.runCSVParser(IngestionRequest.builder() + .id(dmsId) + .dataPartitionId(dataPartitionId) + //TODO can be moved to gcp provider after refactoring step definitions + .authorization(testTokenService.getAuthorizationToken()) + .dataServiceName(dataServiceToUse).build()); + }else { csvParserClient.runCSVParser(IngestionRequest.builder() - .id(dmsId) - .dataPartitionId(dataPartitionId) - .dataServiceName(dataServiceToUse).build()); + .id(dmsId) + .dataPartitionId(dataPartitionId) + .dataServiceName(dataServiceToUse).build()); + } } @When("Start Splitting") public void startSplitting() { sharedBlobDestination = "csv-parser-it/" + System.currentTimeMillis(); sharedStorageSas = cloudStorage.getSharedStorageSignedUrl(); - csvParserClient.runCSVParser(IngestionRequest.builder() - .destination(sharedBlobDestination) - .storageSas(sharedStorageSas) - .steps(singletonList(StepType.LOAD_SPLIT_SAVE)) - .id(dmsId) - .splitterConfig(new SplitterConfig()) - .dataPartitionId(dataPartitionId).build()); + if(Config.getVendor().equals("GCP")){ + csvParserClient.runCSVParser(IngestionRequest.builder() + .destination(sharedBlobDestination) + .storageSas(sharedStorageSas) + .steps(singletonList(StepType.LOAD_SPLIT_SAVE)) + .id(dmsId) + .splitterConfig(new SplitterConfig()) + //TODO can be moved to gcp provider after refactoring step definitions + .authorization(testTokenService.getAuthorizationToken()) + .dataPartitionId(dataPartitionId).build()); + }else { + csvParserClient.runCSVParser(IngestionRequest.builder() + .destination(sharedBlobDestination) + .storageSas(sharedStorageSas) + .steps(singletonList(StepType.LOAD_SPLIT_SAVE)) + .id(dmsId) + .splitterConfig(new SplitterConfig()) + .dataPartitionId(dataPartitionId).build()); + } } @Then("^Verify stored parts in shared blob storage$") diff --git a/testing/csv-parser-core-test/src/main/java/org/opengroup/osdu/csvparser/test/core/util/Config.java b/testing/csv-parser-core-test/src/main/java/org/opengroup/osdu/csvparser/test/core/util/Config.java index 1d8b5c1c..cd42a77b 100644 --- a/testing/csv-parser-core-test/src/main/java/org/opengroup/osdu/csvparser/test/core/util/Config.java +++ b/testing/csv-parser-core-test/src/main/java/org/opengroup/osdu/csvparser/test/core/util/Config.java @@ -6,6 +6,7 @@ public class Config { private static final String INTEGRATION_TEST_AUDIENCE = ""; private static final String DATA_PARTITION_ID = ""; private static final String FILE_SERVICE_ENDPOINT = ""; + private static final String VENDOR = ""; public static String getIntegrationTester() { @@ -24,6 +25,10 @@ public class Config { return getEnvironmentVariableOrDefaultValue("FILE_SERVICE_ENDPOINT", FILE_SERVICE_ENDPOINT); } + public static String getVendor(){ + return getEnvironmentVariableOrDefaultValue("VENDOR",VENDOR); + } + private static String getEnvironmentVariableOrDefaultValue(String key, String defaultValue) { String environmentVariable = getEnvironmentVariable(key); if (environmentVariable == null) { -- GitLab From 1af6c81fe23c3e0fb4c4e2f122df093a7c9c1531 Mon Sep 17 00:00:00 2001 From: "Rustam Lotsmanenko (EPAM)" Date: Wed, 1 Sep 2021 10:06:12 +0000 Subject: [PATCH 2/7] Update .gitlab-ci.yml --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 76904b02..5722c44c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -26,6 +26,7 @@ variables: OSDU_GCP_DMS_KIND: osdu:wks:file:1.0.0 OSDU_GCP_DMS_ACL: data.default.viewers@osdu.osdu-gcp.go3-nrg.projects.epam.com OSDU_GCP_DMS_LEGAL_TAG: osdu-demo-legaltag + OSDU_GCP_VENDOR: GCP # osdu gcp common vars OSDU_GCP_PORT: 8080 @@ -92,8 +93,7 @@ osdu-gcp-test: DMS_ACL: $OSDU_GCP_DMS_ACL DMS_LEGAL_TAG: $OSDU_GCP_DMS_LEGAL_TAG INTEGRATION_TESTER: $OSDU_GCP_INTEGRATION_TESTER - CSV_PARSER_SERVICE_ACCOUNT: $OSDU_GCP_CSV_PARSER_KEY - GOOGLE_AUDIENCES: $OSDU_GCP_INTEGRATION_TEST_AUDIENCE + VENDOR: $OSDU_GCP_VENDOR # MAVEN_CLI_OPTS: "-s cicd-config/.m2/settings.xml --batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true" script: - echo $CSV_PARSER_SERVICE_ACCOUNT | base64 -d > key.json -- GitLab From 3ada95afd1a293eed93ea0b5928a60a602bef827 Mon Sep 17 00:00:00 2001 From: "Rustam Lotsmanenko (EPAM)" Date: Wed, 1 Sep 2021 11:24:18 +0000 Subject: [PATCH 3/7] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5722c44c..2cd7e8b1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -93,6 +93,8 @@ osdu-gcp-test: DMS_ACL: $OSDU_GCP_DMS_ACL DMS_LEGAL_TAG: $OSDU_GCP_DMS_LEGAL_TAG INTEGRATION_TESTER: $OSDU_GCP_INTEGRATION_TESTER + CSV_PARSER_SERVICE_ACCOUNT: $OSDU_GCP_CSV_PARSER_KEY + GOOGLE_AUDIENCES: $OSDU_GCP_INTEGRATION_TEST_AUDIENCE VENDOR: $OSDU_GCP_VENDOR # MAVEN_CLI_OPTS: "-s cicd-config/.m2/settings.xml --batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true" script: -- GitLab From 99ec731e56f65f2815a7952981c0bef67f89ebef Mon Sep 17 00:00:00 2001 From: "Rustam Lotsmanenko (EPAM)" Date: Wed, 1 Sep 2021 12:46:38 +0000 Subject: [PATCH 4/7] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2cd7e8b1..cd4a9e7b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -92,7 +92,7 @@ osdu-gcp-test: DMS_KIND: $OSDU_GCP_DMS_KIND DMS_ACL: $OSDU_GCP_DMS_ACL DMS_LEGAL_TAG: $OSDU_GCP_DMS_LEGAL_TAG - INTEGRATION_TESTER: $OSDU_GCP_INTEGRATION_TESTER + INTEGRATION_TESTER: $OSDU_GCP_CSV_PARSER_KEY CSV_PARSER_SERVICE_ACCOUNT: $OSDU_GCP_CSV_PARSER_KEY GOOGLE_AUDIENCES: $OSDU_GCP_INTEGRATION_TEST_AUDIENCE VENDOR: $OSDU_GCP_VENDOR -- GitLab From d80fc953064f5d92cdc6dbb5d1a40affb6270825 Mon Sep 17 00:00:00 2001 From: Rustam_Lotsmanenko Date: Thu, 2 Sep 2021 13:35:00 +0400 Subject: [PATCH 5/7] change config, update IT env vars --- .gitlab-ci.yml | 10 ++-- .../csvparser/test/core/IngestionSteps.java | 58 ++++++++++--------- .../osdu/csvparser/test/core/util/Config.java | 25 +++++++- 3 files changed, 59 insertions(+), 34 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cd4a9e7b..bdf641c6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,8 +4,8 @@ variables: OSDU_GCP_SCHEMA_SERVICE_ENDPOINT: https://os-schema-attcrcktoa-uc.a.run.app/api/schema-service/v1 OSDU_GCP_PARTITION_SERVICE_ENDPOINT: https://community.osdu-gcp.go3-nrg.projects.epam.com/api/partition/v1/ OSDU_GCP_WORKFLOW_SERVICE_ENDPOINT: https://os-workflow-attcrcktoa-uc.a.run.app - OSDU_GCP_SEARCH_SERVICE_ENDPOINT: https://os-search-attcrcktoa-uc.a.run.app/api/search/v2 - OSDU_GCP_UNIT_SERVICE_ENDPOINT: https://os-unit-attcrcktoa-uc.a.run.app/api/unit/v2/unit/symbol + OSDU_GCP_SEARCH_SERVICE_ENDPOINT: https://community.osdu-gcp.go3-nrg.projects.epam.com/api/search/v2 + OSDU_GCP_UNIT_SERVICE_ENDPOINT: https://community.osdu-gcp.go3-nrg.projects.epam.com/api/unit/v2/unit/symbol OSDU_GCP_FILE_SERVICE_ENDPOINT: https://community.osdu-gcp.go3-nrg.projects.epam.com/api/file/v2 OSDU_GCP_DATASET_SERVICE_ENDPOINT: https://os-dataset-attcrcktoa-uc.a.run.app OSDU_GCP_DATA_SERVICE_TO_USE: file @@ -26,7 +26,8 @@ variables: OSDU_GCP_DMS_KIND: osdu:wks:file:1.0.0 OSDU_GCP_DMS_ACL: data.default.viewers@osdu.osdu-gcp.go3-nrg.projects.epam.com OSDU_GCP_DMS_LEGAL_TAG: osdu-demo-legaltag - OSDU_GCP_VENDOR: GCP + OSDU_GCP_AUTH_MODE: TOKEN + OSDU_GCP_LOG_LEVEL: INFO # osdu gcp common vars OSDU_GCP_PORT: 8080 @@ -95,7 +96,8 @@ osdu-gcp-test: INTEGRATION_TESTER: $OSDU_GCP_CSV_PARSER_KEY CSV_PARSER_SERVICE_ACCOUNT: $OSDU_GCP_CSV_PARSER_KEY GOOGLE_AUDIENCES: $OSDU_GCP_INTEGRATION_TEST_AUDIENCE - VENDOR: $OSDU_GCP_VENDOR + AUTH_MODE: $OSDU_GCP_AUTH_MODE + LOG_LEVEL: $OSDU_GCP_LOG_LEVEL # MAVEN_CLI_OPTS: "-s cicd-config/.m2/settings.xml --batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true" script: - echo $CSV_PARSER_SERVICE_ACCOUNT | base64 -d > key.json diff --git a/testing/csv-parser-core-test/src/main/java/org/opengroup/osdu/csvparser/test/core/IngestionSteps.java b/testing/csv-parser-core-test/src/main/java/org/opengroup/osdu/csvparser/test/core/IngestionSteps.java index c3fabee8..fe063e94 100644 --- a/testing/csv-parser-core-test/src/main/java/org/opengroup/osdu/csvparser/test/core/IngestionSteps.java +++ b/testing/csv-parser-core-test/src/main/java/org/opengroup/osdu/csvparser/test/core/IngestionSteps.java @@ -347,18 +347,20 @@ public class IngestionSteps { @When("Start Ingestion") public void startIngestion() { - if(Config.getVendor().equals("GCP")){ - csvParserClient.runCSVParser(IngestionRequest.builder() - .id(dmsId) - .dataPartitionId(dataPartitionId) - //TODO can be moved to gcp provider after refactoring step definitions - .authorization(testTokenService.getAuthorizationToken()) - .dataServiceName(dataServiceToUse).build()); - }else { - csvParserClient.runCSVParser(IngestionRequest.builder() + switch (Config.getAuthMode()){ + case SERVICE: + csvParserClient.runCSVParser(IngestionRequest.builder() .id(dmsId) .dataPartitionId(dataPartitionId) .dataServiceName(dataServiceToUse).build()); + break; + case TOKEN: + csvParserClient.runCSVParser(IngestionRequest.builder() + .id(dmsId) + .dataPartitionId(dataPartitionId) + .authorization(testTokenService.getAuthorizationToken()) + .dataServiceName(dataServiceToUse).build()); + break; } } @@ -366,24 +368,26 @@ public class IngestionSteps { public void startSplitting() { sharedBlobDestination = "csv-parser-it/" + System.currentTimeMillis(); sharedStorageSas = cloudStorage.getSharedStorageSignedUrl(); - if(Config.getVendor().equals("GCP")){ - csvParserClient.runCSVParser(IngestionRequest.builder() - .destination(sharedBlobDestination) - .storageSas(sharedStorageSas) - .steps(singletonList(StepType.LOAD_SPLIT_SAVE)) - .id(dmsId) - .splitterConfig(new SplitterConfig()) - //TODO can be moved to gcp provider after refactoring step definitions - .authorization(testTokenService.getAuthorizationToken()) - .dataPartitionId(dataPartitionId).build()); - }else { - csvParserClient.runCSVParser(IngestionRequest.builder() - .destination(sharedBlobDestination) - .storageSas(sharedStorageSas) - .steps(singletonList(StepType.LOAD_SPLIT_SAVE)) - .id(dmsId) - .splitterConfig(new SplitterConfig()) - .dataPartitionId(dataPartitionId).build()); + switch (Config.getAuthMode()){ + case SERVICE: + csvParserClient.runCSVParser(IngestionRequest.builder() + .destination(sharedBlobDestination) + .storageSas(sharedStorageSas) + .steps(singletonList(StepType.LOAD_SPLIT_SAVE)) + .id(dmsId) + .splitterConfig(new SplitterConfig()) + .dataPartitionId(dataPartitionId).build()); + break; + case TOKEN: + csvParserClient.runCSVParser(IngestionRequest.builder() + .destination(sharedBlobDestination) + .storageSas(sharedStorageSas) + .steps(singletonList(StepType.LOAD_SPLIT_SAVE)) + .id(dmsId) + .splitterConfig(new SplitterConfig()) + .authorization(testTokenService.getAuthorizationToken()) + .dataPartitionId(dataPartitionId).build()); + break; } } diff --git a/testing/csv-parser-core-test/src/main/java/org/opengroup/osdu/csvparser/test/core/util/Config.java b/testing/csv-parser-core-test/src/main/java/org/opengroup/osdu/csvparser/test/core/util/Config.java index cd42a77b..758f1fb5 100644 --- a/testing/csv-parser-core-test/src/main/java/org/opengroup/osdu/csvparser/test/core/util/Config.java +++ b/testing/csv-parser-core-test/src/main/java/org/opengroup/osdu/csvparser/test/core/util/Config.java @@ -6,7 +6,7 @@ public class Config { private static final String INTEGRATION_TEST_AUDIENCE = ""; private static final String DATA_PARTITION_ID = ""; private static final String FILE_SERVICE_ENDPOINT = ""; - private static final String VENDOR = ""; + private static final AUTH_MODE MODE = AUTH_MODE.SERVICE; public static String getIntegrationTester() { @@ -25,8 +25,8 @@ public class Config { return getEnvironmentVariableOrDefaultValue("FILE_SERVICE_ENDPOINT", FILE_SERVICE_ENDPOINT); } - public static String getVendor(){ - return getEnvironmentVariableOrDefaultValue("VENDOR",VENDOR); + public static AUTH_MODE getAuthMode(){ + return getEnvironmentVariableOrDefaultValue("AUTH_MODE",MODE); } private static String getEnvironmentVariableOrDefaultValue(String key, String defaultValue) { @@ -37,8 +37,27 @@ public class Config { return environmentVariable; } + private static AUTH_MODE getEnvironmentVariableOrDefaultValue(String key, AUTH_MODE defaultValue) { + String environmentVariable = getEnvironmentVariable(key); + if (environmentVariable == null) { + return defaultValue; + } + return AUTH_MODE.valueOf(environmentVariable); + } + private static String getEnvironmentVariable(String propertyKey) { return System.getProperty(propertyKey, System.getenv(propertyKey)); } + public enum AUTH_MODE { + SERVICE("SERVICE"), + TOKEN("TOKEN"); + + private String mode; + + AUTH_MODE(String mode) { + this.mode = mode; + } + } + } -- GitLab From 2151b0ce39c7c9a6997922e00144ac26e155d0e5 Mon Sep 17 00:00:00 2001 From: Rustam_Lotsmanenko Date: Thu, 2 Sep 2021 14:10:45 +0400 Subject: [PATCH 6/7] refactoring --- .gitlab-ci.yml | 3 +-- provider/csv-parser-gcp/README.md | 4 +++- .../gcp/auth/token/ServiceAccountAuthToken.java | 17 ++++++++++++++++- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bdf641c6..df19be33 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -94,13 +94,12 @@ osdu-gcp-test: DMS_ACL: $OSDU_GCP_DMS_ACL DMS_LEGAL_TAG: $OSDU_GCP_DMS_LEGAL_TAG INTEGRATION_TESTER: $OSDU_GCP_CSV_PARSER_KEY - CSV_PARSER_SERVICE_ACCOUNT: $OSDU_GCP_CSV_PARSER_KEY GOOGLE_AUDIENCES: $OSDU_GCP_INTEGRATION_TEST_AUDIENCE AUTH_MODE: $OSDU_GCP_AUTH_MODE LOG_LEVEL: $OSDU_GCP_LOG_LEVEL # MAVEN_CLI_OPTS: "-s cicd-config/.m2/settings.xml --batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true" script: - - echo $CSV_PARSER_SERVICE_ACCOUNT | base64 -d > key.json + - echo $INTEGRATION_TESTER | base64 -d > key.json - export GOOGLE_APPLICATION_CREDENTIALS=$(pwd)/key.json - echo $GOOGLE_APPLICATION_CREDENTIALS - gcloud auth activate-service-account --key-file key.json diff --git a/provider/csv-parser-gcp/README.md b/provider/csv-parser-gcp/README.md index cdebbcca..7d27e0fe 100644 --- a/provider/csv-parser-gcp/README.md +++ b/provider/csv-parser-gcp/README.md @@ -166,7 +166,9 @@ You will need to have the following environment variables defined. | `DMS_KIND` | `kind` | Dms kind for IT configuration | no | -- | | `DMS_ACL` | `acl` | Dms acl for IT configuration | no | -- | | `DMS_LEGAL_TAG` | `legal-tag` | Dms legal tag for IT configuration | no | -- | -| `VENDOR` | `GCP` | Must be set to `GCP` in order to use a specific gcp flow, without directly using the service account inside the csv-parser | no | -- | +| `AUTH_MODE` | `TOKEN` OR `SERVICE` | Must be set to `TOKEN` in order to use a specific gcp flow, without directly using the service account inside the csv-parser | no | -- | +| `LOG_LEVEL` | `INFO` | Log level | no | -- | + **Entitlements configuration for integration accounts** diff --git a/provider/csv-parser-gcp/src/main/java/org/opengroup/osdu/csvparser/provider/gcp/auth/token/ServiceAccountAuthToken.java b/provider/csv-parser-gcp/src/main/java/org/opengroup/osdu/csvparser/provider/gcp/auth/token/ServiceAccountAuthToken.java index 91b67d02..75729741 100644 --- a/provider/csv-parser-gcp/src/main/java/org/opengroup/osdu/csvparser/provider/gcp/auth/token/ServiceAccountAuthToken.java +++ b/provider/csv-parser-gcp/src/main/java/org/opengroup/osdu/csvparser/provider/gcp/auth/token/ServiceAccountAuthToken.java @@ -1,8 +1,12 @@ package org.opengroup.osdu.csvparser.provider.gcp.auth.token; +import java.io.IOException; +import org.elasticsearch.common.Strings; import org.opengroup.osdu.core.common.model.http.AppException; +import org.opengroup.osdu.core.gcp.auth.GoogleServiceAccount; import org.opengroup.osdu.csvparser.auth.token.AuthJwtToken; import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Component; @Component @@ -16,7 +20,18 @@ public class ServiceAccountAuthToken implements AuthJwtToken { @Override public String getAuthToken() throws AppException { - return null; + if (Strings.isNullOrEmpty(serviceAccount) || Strings.isNullOrEmpty(audience)) { + return null; + } else { + try { + return new GoogleServiceAccount(serviceAccount).getAuthToken(audience); + } catch (IOException e) { + throw new AppException( + HttpStatus.UNAUTHORIZED.value(), + HttpStatus.UNAUTHORIZED.getReasonPhrase(), + "The user is unauthorized to perform this action"); + } + } } } -- GitLab From 32a00d7c7b1fc314965735cf1ee10b97c123c819 Mon Sep 17 00:00:00 2001 From: Rustam_Lotsmanenko Date: Thu, 2 Sep 2021 15:33:01 +0400 Subject: [PATCH 7/7] notice --- NOTICE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NOTICE b/NOTICE index fb165eb2..3b742876 100644 --- a/NOTICE +++ b/NOTICE @@ -272,7 +272,7 @@ The following software have components provided under the terms of this license: - proto-google-cloud-iamcredentials-v1 (from https://github.com/googleapis/java-iamcredentials/proto-google-cloud-iamcredentials-v1) - proto-google-cloud-logging-v2 (from https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-cloud-logging-v2) - proto-google-cloud-pubsub-v1 (from https://github.com/googleapis/java-pubsub/proto-google-cloud-pubsub-v1) -- proto-google-common-protos (from https://github.com/googleapis/api-client-staging) +- proto-google-common-protos (from https://github.com/googleapis/java-iam/proto-google-common-protos) - proto-google-iam-v1 (from https://github.com/googleapis/java-iam/proto-google-iam-v1) - rank-eval (from https://github.com/elastic/elasticsearch) - resilience4j (from https://resilience4j.readme.io) -- GitLab