diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 7bdad93a0d..d7af452001 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-storage.git", - "sha": "0f86d7b0257ac2f7908d33ec5653cf684826b9b1" + "sha": "e8d52ad934d485d5f035fbdc6c8117f256fed566" } }, { diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index d41bd74504..583b39c638 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -10,7 +10,6 @@ branchProtectionRules: requiredStatusCheckContexts: - dependencies (8) - dependencies (11) - - linkage-monitor - lint - clirr - units (8) @@ -25,7 +24,6 @@ branchProtectionRules: requiredStatusCheckContexts: - dependencies (8) - dependencies (11) - - linkage-monitor - lint - clirr - units (7) @@ -56,7 +54,6 @@ branchProtectionRules: requiredStatusCheckContexts: - dependencies (8) - dependencies (11) - - linkage-monitor - lint - clirr - units (7) @@ -72,7 +69,6 @@ branchProtectionRules: requiredStatusCheckContexts: - dependencies (8) - dependencies (11) - - linkage-monitor - lint - clirr - units (7) diff --git a/CHANGELOG.md b/CHANGELOG.md index ca5cf04d57..cf95ee7c84 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## [2.1.0](https://www.github.com/googleapis/java-storage/compare/v2.0.2...v2.1.0) (2021-08-24) + + +### Features + +* fix post policy escape bug, update conformance tests ([#924](https://www.github.com/googleapis/java-storage/issues/924)) ([d8329c3](https://www.github.com/googleapis/java-storage/commit/d8329c34fe19fd8c6bba5579aa3c55490c1d4e6f)) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.1.0 ([#976](https://www.github.com/googleapis/java-storage/issues/976)) ([5cac14d](https://www.github.com/googleapis/java-storage/commit/5cac14d7785ef3798c379d17cd44500958d9cc6a)) +* update kms.version to v0.91.2 ([#977](https://www.github.com/googleapis/java-storage/issues/977)) ([1c60e6e](https://www.github.com/googleapis/java-storage/commit/1c60e6e6a34f662478043989b5b0bddea32cc5bf)) + ### [2.0.2](https://www.github.com/googleapis/java-storage/compare/v2.0.1...v2.0.2) (2021-08-19) diff --git a/README.md b/README.md index 1dce6fa5f7..b8b681afe4 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-storage - 2.0.1 + 2.0.2 ``` @@ -56,13 +56,13 @@ compile 'com.google.cloud:google-cloud-storage' If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-storage:2.0.1' +compile 'com.google.cloud:google-cloud-storage:2.0.2' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-storage" % "2.0.1" +libraryDependencies += "com.google.cloud" % "google-cloud-storage" % "2.0.2" ``` ## Authentication diff --git a/gapic-google-cloud-storage-v2/pom.xml b/gapic-google-cloud-storage-v2/pom.xml index dfa2d5fb76..e1d04272b4 100644 --- a/gapic-google-cloud-storage-v2/pom.xml +++ b/gapic-google-cloud-storage-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc gapic-google-cloud-storage-v2 - 2.0.2-alpha + 2.1.0-alpha gapic-google-cloud-storage-v2 GRPC library for gapic-google-cloud-storage-v2 com.google.cloud google-cloud-storage-parent - 2.0.2 + 2.1.0 diff --git a/google-cloud-storage/pom.xml b/google-cloud-storage/pom.xml index 0245dd074e..92110287ab 100644 --- a/google-cloud-storage/pom.xml +++ b/google-cloud-storage/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-storage - 2.0.2 + 2.1.0 jar Google Cloud Storage https://github.com/googleapis/java-storage @@ -12,11 +12,11 @@ com.google.cloud google-cloud-storage-parent - 2.0.2 + 2.1.0 google-cloud-storage - 0.91.1 + 0.91.2 diff --git a/google-cloud-storage/src/main/java/com/google/cloud/storage/PostPolicyV4.java b/google-cloud-storage/src/main/java/com/google/cloud/storage/PostPolicyV4.java index 96afca06e1..4abcb4fd33 100644 --- a/google-cloud-storage/src/main/java/com/google/cloud/storage/PostPolicyV4.java +++ b/google-cloud-storage/src/main/java/com/google/cloud/storage/PostPolicyV4.java @@ -443,13 +443,21 @@ public String toJson() { StringBuilder escapedJson = new StringBuilder(); // Certain characters in a policy must be escaped - for (char c : json.toCharArray()) { + char[] jsonArray = json.toCharArray(); + for (int i = 0; i < jsonArray.length; i++) { + char c = jsonArray[i]; if (c >= 128) { // is a unicode character escapedJson.append(String.format("\\u%04x", (int) c)); } else { switch (c) { case '\\': - escapedJson.append("\\\\"); + // The JsonObject/JsonArray operations above handle quote escapes, so leave any "\"" + // found alone + if (jsonArray[i + 1] == '"') { + escapedJson.append("\\"); + } else { + escapedJson.append("\\\\"); + } break; case '\b': escapedJson.append("\\b"); diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/V4PostPolicyTest.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/V4PostPolicyTest.java index 161fb36404..fc7f59f921 100644 --- a/google-cloud-storage/src/test/java/com/google/cloud/storage/V4PostPolicyTest.java +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/V4PostPolicyTest.java @@ -28,7 +28,6 @@ import com.google.cloud.conformance.storage.v1.UrlStyle; import com.google.cloud.storage.testing.RemoteStorageHelper; import com.google.common.base.Charsets; -import com.google.common.base.Strings; import com.google.common.io.BaseEncoding; import com.google.protobuf.Timestamp; import com.google.protobuf.util.JsonFormat; @@ -117,17 +116,6 @@ public void test() { PolicyConditions conditions = policyInput.getConditions(); - if (!Strings.isNullOrEmpty(fields.get("success_action_redirect"))) { - builder.addSuccessActionRedirectUrlCondition( - PostPolicyV4.ConditionV4Type.MATCHES, fields.get("success_action_redirect")); - } - - if (!Strings.isNullOrEmpty(fields.get("success_action_status"))) { - builder.addSuccessActionStatusCondition( - PostPolicyV4.ConditionV4Type.MATCHES, - Integer.parseInt(fields.get("success_action_status"))); - } - if (conditions != null) { if (!conditions.getStartsWithList().isEmpty()) { builder.addCustomCondition( @@ -166,17 +154,25 @@ public void test() { style); String expectedPolicy = testData.getPolicyOutput().getExpectedDecodedPolicy(); + StringBuilder escapedPolicy = new StringBuilder(); // Java automatically unescapes the unicode escapes in the conformance tests, so we need to // manually re-escape them - for (char c : expectedPolicy.toCharArray()) { + char[] expectedPolicyArray = expectedPolicy.toCharArray(); + for (int i = 0; i < expectedPolicyArray.length; i++) { + char c = expectedPolicyArray[i]; if (c >= 128) { escapedPolicy.append(String.format("\\u%04x", (int) c)); } else { switch (c) { case '\\': - escapedPolicy.append("\\\\"); + // quotes aren't unescaped, so leave any "\"" found alone + if (expectedPolicyArray[i + 1] == '"') { + escapedPolicy.append("\\"); + } else { + escapedPolicy.append("\\\\"); + } break; case '\b': escapedPolicy.append("\\b"); @@ -202,6 +198,7 @@ public void test() { } } assertEquals(testData.getPolicyOutput().getFieldsMap(), policy.getFields()); + assertEquals( escapedPolicy.toString(), new String(BaseEncoding.base64().decode(policy.getFields().get("policy")))); diff --git a/grpc-google-cloud-storage-v2/pom.xml b/grpc-google-cloud-storage-v2/pom.xml index 9caef45583..155b129356 100644 --- a/grpc-google-cloud-storage-v2/pom.xml +++ b/grpc-google-cloud-storage-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-storage-v2 - 2.0.2-alpha + 2.1.0-alpha grpc-google-cloud-storage-v2 GRPC library for grpc-google-cloud-storage-v2 com.google.cloud google-cloud-storage-parent - 2.0.2 + 2.1.0 diff --git a/pom.xml b/pom.xml index c5deab31b4..923f26796c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-storage-parent pom - 2.0.2 + 2.1.0 Storage Parent https://github.com/googleapis/java-storage @@ -54,7 +54,7 @@ UTF-8 github google-cloud-storage-parent - 2.0.1 + 2.1.0 @@ -93,22 +93,22 @@ com.google.api.grpc proto-google-cloud-storage-v2 - 2.0.2-alpha + 2.1.0-alpha com.google.api.grpc grpc-google-cloud-storage-v2 - 2.0.2-alpha + 2.1.0-alpha com.google.api.grpc gapic-google-cloud-storage-v2 - 2.0.2-alpha + 2.1.0-alpha com.google.cloud google-cloud-conformance-tests - 0.0.11 + 0.1.1 test diff --git a/proto-google-cloud-storage-v2/pom.xml b/proto-google-cloud-storage-v2/pom.xml index a3a62e877d..4a369883ed 100644 --- a/proto-google-cloud-storage-v2/pom.xml +++ b/proto-google-cloud-storage-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-storage-v2 - 2.0.2-alpha + 2.1.0-alpha proto-google-cloud-storage-v2 PROTO library for proto-google-cloud-storage-v2 com.google.cloud google-cloud-storage-parent - 2.0.2 + 2.1.0 diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3a864a3ab4..7c067d0017 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -29,7 +29,7 @@ com.google.cloud google-cloud-storage - 2.0.1 + 2.0.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1308c2bad1..378d59cfae 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -28,7 +28,7 @@ com.google.cloud google-cloud-storage - 2.0.1 + 2.0.2 diff --git a/versions.txt b/versions.txt index 08324a67dc..bf70375bcc 100644 --- a/versions.txt +++ b/versions.txt @@ -1,7 +1,7 @@ # Format: # module:released-version:current-version -google-cloud-storage:2.0.2:2.0.2 -gapic-google-cloud-storage-v2:2.0.2-alpha:2.0.2-alpha -grpc-google-cloud-storage-v2:2.0.2-alpha:2.0.2-alpha -proto-google-cloud-storage-v2:2.0.2-alpha:2.0.2-alpha +google-cloud-storage:2.1.0:2.1.0 +gapic-google-cloud-storage-v2:2.1.0-alpha:2.1.0-alpha +grpc-google-cloud-storage-v2:2.1.0-alpha:2.1.0-alpha +proto-google-cloud-storage-v2:2.1.0-alpha:2.1.0-alpha