diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-04-19 06:35:04 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-04-19 06:35:04 +0200 |
commit | 1d818e96e1d6002726f6b89967e0835116251f15 (patch) | |
tree | e7aefa162bdc5300f7440d542dc9e102669ba4d2 /document | |
parent | 99c785443065ce08cfdf6ff78c63fd050881c857 (diff) |
Skip padding of base64 encoded data.
Diffstat (limited to 'document')
6 files changed, 10 insertions, 11 deletions
diff --git a/document/src/main/java/com/yahoo/document/json/JsonSerializationHelper.java b/document/src/main/java/com/yahoo/document/json/JsonSerializationHelper.java index 110564bea46..795f8e93187 100644 --- a/document/src/main/java/com/yahoo/document/json/JsonSerializationHelper.java +++ b/document/src/main/java/com/yahoo/document/json/JsonSerializationHelper.java @@ -5,7 +5,6 @@ import com.fasterxml.jackson.core.JsonGenerator; import com.yahoo.document.DataType; import com.yahoo.document.DocumentId; import com.yahoo.document.Field; -import com.yahoo.document.PositionDataType; import com.yahoo.document.PrimitiveDataType; import com.yahoo.document.datatypes.Array; import com.yahoo.document.datatypes.BoolFieldValue; @@ -41,7 +40,6 @@ import java.nio.charset.StandardCharsets; import java.util.Base64; import java.util.Iterator; import java.util.Map; -import java.util.Set; /** * @author Steinar Knutsen @@ -49,7 +47,7 @@ import java.util.Set; */ public class JsonSerializationHelper { - private final static Base64.Encoder base64Encoder = Base64.getEncoder(); // Important: _basic_ format + private final static Base64.Encoder base64Encoder = Base64.getEncoder().withoutPadding(); // Important: _basic_ format static class JsonSerializationException extends RuntimeException { public JsonSerializationException(Exception base) { @@ -166,8 +164,7 @@ public class JsonSerializationHelper { public static void serializeStructField(FieldWriter fieldWriter, JsonGenerator generator, FieldBase field, Struct value) { DataType dt = value.getDataType(); - if (dt instanceof GeoPosType) { - var gpt = (GeoPosType)dt; + if (dt instanceof GeoPosType gpt) { if (gpt.renderJsonAsVespa8()) { serializeGeoPos(generator, field, value, gpt); return; diff --git a/document/src/main/java/com/yahoo/document/serialization/XmlSerializationHelper.java b/document/src/main/java/com/yahoo/document/serialization/XmlSerializationHelper.java index 9c1df0cd6c7..d35693f785f 100644 --- a/document/src/main/java/com/yahoo/document/serialization/XmlSerializationHelper.java +++ b/document/src/main/java/com/yahoo/document/serialization/XmlSerializationHelper.java @@ -34,6 +34,8 @@ import java.util.Map; @SuppressWarnings("removal") public class XmlSerializationHelper { + private final static Base64.Encoder base64Encoder = Base64.getEncoder().withoutPadding(); + public static void printArrayXml(Array array, XmlStream xml) { List<FieldValue> lst = array.getValues(); for (FieldValue value : lst) { @@ -98,7 +100,7 @@ public class XmlSerializationHelper { public static void printRawXml(Raw r, XmlStream xml) { xml.addAttribute("binaryencoding", "base64"); - xml.addContent(Base64.getEncoder().encodeToString(r.getByteBuffer().array())); + xml.addContent(base64Encoder.encodeToString(r.getByteBuffer().array())); } public static void printStringXml(StringFieldValue s, XmlStream xml) { @@ -106,7 +108,7 @@ public class XmlSerializationHelper { if (containsNonPrintableCharactersString(content)) { byte[] bytecontent = Utf8.toBytes(content); xml.addAttribute("binaryencoding", "base64"); - xml.addContent(Base64.getEncoder().encodeToString(bytecontent)); + xml.addContent(base64Encoder.encodeToString(bytecontent)); } else { xml.addContent(content); } diff --git a/document/src/test/java/com/yahoo/document/DocumentTestCase.java b/document/src/test/java/com/yahoo/document/DocumentTestCase.java index 33b77cb1878..4470865b636 100644 --- a/document/src/test/java/com/yahoo/document/DocumentTestCase.java +++ b/document/src/test/java/com/yahoo/document/DocumentTestCase.java @@ -52,7 +52,7 @@ public class DocumentTestCase extends DocumentTestCaseBase { " <mailid>emailfromalicetobob&someone</mailid>\n" + " <date>-2013512400</date>\n" + " <attachmentcount>2</attachmentcount>\n" + - " <rawfield binaryencoding=\"base64\">AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiYw==</rawfield>\n"; + " <rawfield binaryencoding=\"base64\">AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiYw</rawfield>\n"; private static final String SERTEST_DOC_AS_XML_WEIGHT1 = " <weightedfield>\n" + diff --git a/document/src/test/java/com/yahoo/document/json/DocumentUpdateJsonSerializerTest.java b/document/src/test/java/com/yahoo/document/json/DocumentUpdateJsonSerializerTest.java index 08a5c9a124c..af7469de31b 100644 --- a/document/src/test/java/com/yahoo/document/json/DocumentUpdateJsonSerializerTest.java +++ b/document/src/test/java/com/yahoo/document/json/DocumentUpdateJsonSerializerTest.java @@ -504,7 +504,7 @@ public class DocumentUpdateJsonSerializerTest { " 'update': 'DOCUMENT_ID',", " 'fields': {", " 'raw_field': {", - " 'assign': 'RG9uJ3QgYmVsaWV2ZSBoaXMgbGllcw=='", + " 'assign': 'RG9uJ3QgYmVsaWV2ZSBoaXMgbGllcw'", " }", " }", "}" diff --git a/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java b/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java index 0c130ab9a42..a761a9adfb6 100644 --- a/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java +++ b/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java @@ -668,7 +668,7 @@ public class JsonReaderTestCase { @Test public void testRaw() throws IOException { String base64 = new String(new JsonStringEncoder().quoteAsString( - Base64.getEncoder().encodeToString(Utf8.toBytes("smoketest")))); + Base64.getEncoder().withoutPadding().encodeToString(Utf8.toBytes("smoketest")))); String s = fieldStringFromBase64RawContent(base64); assertEquals("smoketest", s); } diff --git a/document/src/test/java/com/yahoo/document/json/JsonWriterTestCase.java b/document/src/test/java/com/yahoo/document/json/JsonWriterTestCase.java index eab33afc3e4..4f15a2fe368 100644 --- a/document/src/test/java/com/yahoo/document/json/JsonWriterTestCase.java +++ b/document/src/test/java/com/yahoo/document/json/JsonWriterTestCase.java @@ -291,7 +291,7 @@ public class JsonWriterTestCase { String payload = new String( new JsonStringEncoder().quoteAsString( "c3RyaW5nIGxvbmcgZW5vdWdoIHRvIGVtaXQgbW9yZSB0aGFuIDc2IGJhc2U2NCBjaGFyYWN0ZXJzIGFuZC" + - "B3aGljaCBzaG91bGQgY2VydGFpbmx5IG5vdCBiZSBuZXdsaW5lLWRlbGltaXRlZCE=")); + "B3aGljaCBzaG91bGQgY2VydGFpbmx5IG5vdCBiZSBuZXdsaW5lLWRlbGltaXRlZCE")); String docId = "id:unittest:testraw::whee"; |