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