From 05ec221eec9f7ba316ca16df38329cfe4f0a3e87 Mon Sep 17 00:00:00 2001 From: George Chen Date: Mon, 22 May 2023 11:27:06 -0500 Subject: [PATCH 1/5] MAINT: extract reason from error Signed-off-by: George Chen --- .../opensearch/client/transport/aws/AwsSdk2Transport.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/java-client/src/main/java/org/opensearch/client/transport/aws/AwsSdk2Transport.java b/java-client/src/main/java/org/opensearch/client/transport/aws/AwsSdk2Transport.java index 8fd1dfa9b4..4609fbd6a1 100644 --- a/java-client/src/main/java/org/opensearch/client/transport/aws/AwsSdk2Transport.java +++ b/java-client/src/main/java/org/opensearch/client/transport/aws/AwsSdk2Transport.java @@ -457,7 +457,13 @@ private ResponseT parseResponse( JsonObject val = JsonpDeserializer.jsonValueDeserializer() .deserialize(parser, mapper) .asJsonObject(); - String message = val.getString("Message", null); + String message = null; + if (val.get("error") instanceof JsonObject) { + message = val.get("error").asJsonObject().getString("reason", null); + } + if (message == null) { + message = val.getString("Message", null); + } if (message == null) { message = val.getString("message", null); } From da98b4a7eebcd5e9588a47dc0283a472e17eefc4 Mon Sep 17 00:00:00 2001 From: George Chen Date: Mon, 22 May 2023 12:02:39 -0500 Subject: [PATCH 2/5] MAINT: add change log Signed-off-by: George Chen --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cb2b26bf6c..b4cf81cfc3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -125,6 +125,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Do not double-wrap OpenSearchException on error ([#323](https://github.com/opensearch-project/opensearch-java/pull/323)) - Fix AwsSdk2TransportOptions.responseCompression ([#322](https://github.com/opensearch-project/opensearch-java/pull/322)) - Fix missing Highlight and SourceConfig in the MultisearchBody ([#442](https://github.com/opensearch-project/opensearch-java/pull/442)) +- Fix missing cause message in missing permission to call Fine Grained Access Control Amazon OpenSearch domain ([#473](https://github.com/opensearch-project/opensearch-java/issues/473)) ### Security From 5aa21a8bb8709eedf7f6dfe1415f3ce059822934 Mon Sep 17 00:00:00 2001 From: George Chen Date: Mon, 22 May 2023 14:55:50 -0500 Subject: [PATCH 3/5] MAINT: remove unwanted string Signed-off-by: George Chen --- CHANGELOG.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f5eeeaa17..1dca43e322 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -130,8 +130,6 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Fix parsing /_alias error response for not existing alias ([#476](https://github.com/opensearch-project/opensearch-java/pull/476)) - Fix missing cause message in missing permission to call Fine Grained Access Control Amazon OpenSearch domain ([#473](https://github.com/opensearch-project/opensearch-java/issues/473)) ->>>>>>> main - ### Security [Unreleased 3.0]: https://github.com/opensearch-project/opensearch-java/compare/2.x...HEAD From 4f7b386085e4b797110b2b3cc074fd54b4c79670 Mon Sep 17 00:00:00 2001 From: George Chen Date: Tue, 23 May 2023 12:18:40 -0500 Subject: [PATCH 4/5] TST: AwsSdk2SecurityIT Signed-off-by: George Chen --- .../integTest/aws/AwsSdk2SecurityIT.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 java-client/src/test/java/org/opensearch/client/opensearch/integTest/aws/AwsSdk2SecurityIT.java diff --git a/java-client/src/test/java/org/opensearch/client/opensearch/integTest/aws/AwsSdk2SecurityIT.java b/java-client/src/test/java/org/opensearch/client/opensearch/integTest/aws/AwsSdk2SecurityIT.java new file mode 100644 index 0000000000..3e34de3f33 --- /dev/null +++ b/java-client/src/test/java/org/opensearch/client/opensearch/integTest/aws/AwsSdk2SecurityIT.java @@ -0,0 +1,23 @@ +package org.opensearch.client.opensearch.integTest.aws; + +import org.junit.Test; +import org.opensearch.client.opensearch.OpenSearchClient; +import org.opensearch.client.opensearch._types.OpenSearchException; +import org.opensearch.client.opensearch.cluster.GetClusterSettingsRequest; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertThrows; + +public class AwsSdk2SecurityIT extends AwsSdk2TransportTestCase { + private static final String DEFAULT_MESSAGE = "authentication/authorization failure"; + @Test + public void testUnAuthorizedException() { + final OpenSearchClient client = getClient(false, null, null); + final GetClusterSettingsRequest request = new GetClusterSettingsRequest.Builder() + .includeDefaults(true) + .build(); + final OpenSearchException ex = assertThrows( + OpenSearchException.class, () -> client.cluster().getSettings(request)); + assertFalse(ex.getMessage().contains(DEFAULT_MESSAGE)); + } +} From 79dc19aeedc5bedcf36e7306148b8741887748c9 Mon Sep 17 00:00:00 2001 From: George Chen Date: Tue, 23 May 2023 12:25:00 -0500 Subject: [PATCH 5/5] MAINT: header Signed-off-by: George Chen --- .../opensearch/integTest/aws/AwsSdk2SecurityIT.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/java-client/src/test/java/org/opensearch/client/opensearch/integTest/aws/AwsSdk2SecurityIT.java b/java-client/src/test/java/org/opensearch/client/opensearch/integTest/aws/AwsSdk2SecurityIT.java index 3e34de3f33..aef59a3abf 100644 --- a/java-client/src/test/java/org/opensearch/client/opensearch/integTest/aws/AwsSdk2SecurityIT.java +++ b/java-client/src/test/java/org/opensearch/client/opensearch/integTest/aws/AwsSdk2SecurityIT.java @@ -1,3 +1,11 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + package org.opensearch.client.opensearch.integTest.aws; import org.junit.Test;