From b5b49289872eccf72df62c06c411ddfc6369bfd1 Mon Sep 17 00:00:00 2001 From: Hunter Herman Date: Wed, 9 Jun 2021 18:02:25 -0700 Subject: [PATCH] Support base64 strings in getBinaryValue() Adds support for deserializing base64 strings as binary. Elasticsearch returns base64 strings for binary fields, not native binary. --- .../com/fasterxml/jackson/dataformat/cbor/CBORParser.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cbor/src/main/java/com/fasterxml/jackson/dataformat/cbor/CBORParser.java b/cbor/src/main/java/com/fasterxml/jackson/dataformat/cbor/CBORParser.java index 061b96067..9cb64e99c 100644 --- a/cbor/src/main/java/com/fasterxml/jackson/dataformat/cbor/CBORParser.java +++ b/cbor/src/main/java/com/fasterxml/jackson/dataformat/cbor/CBORParser.java @@ -1716,8 +1716,10 @@ public byte[] getBinaryValue(Base64Variant b64variant) throws JacksonException if (_tokenIncomplete) { _finishToken(); } + if (_currToken == JsonToken.VALUE_STRING) { + return b64variant.decode(_textBuffer.contentsAsString()); + } if (_currToken != JsonToken.VALUE_EMBEDDED_OBJECT ) { - // TODO, maybe: support base64 for text? _reportError("Current token ("+currentToken()+") not VALUE_EMBEDDED_OBJECT, can not access as binary"); } return _binaryValue;