diff --git a/legal-core/src/main/java/org/opengroup/osdu/legal/di/EntitlementsClientFactory.java b/legal-core/src/main/java/org/opengroup/osdu/legal/di/EntitlementsClientFactory.java index 10f98e0eb70e32eccd4e3e1d7bbe8b3706f3041b..9fea31aafc98164e61f97ebc9becfba5c1ccac1d 100644 --- a/legal-core/src/main/java/org/opengroup/osdu/legal/di/EntitlementsClientFactory.java +++ b/legal-core/src/main/java/org/opengroup/osdu/legal/di/EntitlementsClientFactory.java @@ -17,6 +17,8 @@ package org.opengroup.osdu.legal.di; import org.opengroup.osdu.core.common.entitlements.EntitlementsAPIConfig; import org.opengroup.osdu.core.common.entitlements.EntitlementsFactory; import org.opengroup.osdu.core.common.entitlements.IEntitlementsFactory; +import org.opengroup.osdu.core.common.http.json.HttpResponseBodyMapper; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.config.AbstractFactoryBean; import org.springframework.context.annotation.Lazy; @@ -32,6 +34,9 @@ public class EntitlementsClientFactory extends AbstractFactoryBean<IEntitlements @Value("${AUTHORIZE_API_KEY:}") public String AUTHORIZE_API_KEY; + @Autowired + private HttpResponseBodyMapper bodyMapper; + @Override protected IEntitlementsFactory createInstance() throws Exception { @@ -40,7 +45,8 @@ public class EntitlementsClientFactory extends AbstractFactoryBean<IEntitlements .builder() .rootUrl(AUTHORIZE_API) .apiKey(AUTHORIZE_API_KEY) - .build()); + .build(), + bodyMapper); } @Override diff --git a/pom.xml b/pom.xml index 48adfdea1fa285177d54268ee36233f24cd5b5da..9c584cc5b731e8c6618fb2c0500b55fca22ad2a5 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ <maven.compiler.source>1.8</maven.compiler.source> <docker.image.prefix>opendes</docker.image.prefix> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <os-core-common.version>0.3.6</os-core-common.version> + <os-core-common.version>0.3.21</os-core-common.version> </properties> <licenses> diff --git a/provider/legal-gcp/src/main/java/org/opengroup/osdu/legal/countries/CloudStorageCredential.java b/provider/legal-gcp/src/main/java/org/opengroup/osdu/legal/countries/CloudStorageCredential.java index 5a3f2eb37c7929a7c903665e0c4c084c54284214..ede6242c1fb2f52457b179f8604bdd85b4fbda70 100644 --- a/provider/legal-gcp/src/main/java/org/opengroup/osdu/legal/countries/CloudStorageCredential.java +++ b/provider/legal-gcp/src/main/java/org/opengroup/osdu/legal/countries/CloudStorageCredential.java @@ -16,6 +16,9 @@ import com.google.auth.oauth2.GoogleCredentials; import com.google.common.net.HttpHeaders; import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import java.util.Objects; +import org.apache.commons.lang3.StringUtils; import org.opengroup.osdu.core.common.http.HttpClient; import org.opengroup.osdu.core.common.http.HttpRequest; import org.opengroup.osdu.core.common.http.HttpResponse; @@ -41,6 +44,7 @@ public class CloudStorageCredential extends GoogleCredentials { private final transient TenantInfo tenant; private final transient HttpClient httpClient; + static final transient JsonParser parser = new JsonParser(); public CloudStorageCredential(TenantInfo tenant) { this.tenant = tenant; @@ -79,9 +83,9 @@ public class CloudStorageCredential extends GoogleCredentials { "assertion", signedJwt)) .build(); HttpResponse response = this.httpClient.send(request); - JsonObject jsonResult = response.getAsJsonObject(); + JsonObject jsonResult = StringUtils.isBlank(response.getBody()) ? null : parser.parse(response.getBody()).getAsJsonObject(); - if (!response.isSuccessCode() || !jsonResult.has("access_token")) { + if (!response.isSuccessCode() || Objects.isNull(jsonResult) ||!jsonResult.has("access_token")) { throw new CompletionException("Error retrieving refresh token from Google. " + response.getBody(), response.getException()); }