Class Base64Support
java.lang.Object
net.shibboleth.utilities.java.support.codec.Base64Support
public final class Base64Support extends Object
Helper class for working with
Base64
.
This helper class specifically addresses that waste of the Apache Codec encode/decode static methods creating new
instances of the Base64
for every operation. It also provides the helper method to produce both chunked and
unchunked encoded content as strings.
-
Field Summary
Fields Modifier and Type Field Description static boolean
CHUNKED
Chunk the encoded data into 76-character lines broken by CRLF characters.private static org.apache.commons.codec.binary.Base64
CHUNKED_ENCODER
Encoder used to produce chunked output.static boolean
UNCHUNKED
Do not chunk encoded data.private static org.apache.commons.codec.binary.Base64
UNCHUNKED_ENCODER
Encoder used to produce unchunked output. -
Constructor Summary
Constructors Modifier Constructor Description private
Base64Support()
Constructor. -
Method Summary
Modifier and Type Method Description static byte[]
decode(String data)
Decodes (un)chunked Base64 encoded data.static byte[]
decodeURLSafe(String data)
Decodes (un)chunked Base64URL encoded data.static String
encode(byte[] data, boolean chunked)
Base64 encodes the given binary data.static String
encodeURLSafe(byte[] data)
Base64URL encodes the given binary data.
-
Field Details
-
CHUNKED
public static final boolean CHUNKEDChunk the encoded data into 76-character lines broken by CRLF characters.- See Also:
- Constant Field Values
-
UNCHUNKED
public static final boolean UNCHUNKEDDo not chunk encoded data.- See Also:
- Constant Field Values
-
CHUNKED_ENCODER
@Nonnull private static final org.apache.commons.codec.binary.Base64 CHUNKED_ENCODEREncoder used to produce chunked output. -
UNCHUNKED_ENCODER
@Nonnull private static final org.apache.commons.codec.binary.Base64 UNCHUNKED_ENCODEREncoder used to produce unchunked output.
-
-
Constructor Details
-
Base64Support
private Base64Support()Constructor.
-
-
Method Details
-
encode
@Nonnull public static String encode(@Nonnull byte[] data, boolean chunked) throws EncodingExceptionBase64 encodes the given binary data.- Parameters:
data
- data to encodechunked
- whether the encoded data should be chunked or not- Returns:
- the base64 encoded data
- Throws:
EncodingException
- when anyException
is thrown from the underlying encoder, or the output is null.
-
decode
Decodes (un)chunked Base64 encoded data.- Parameters:
data
- Base64 encoded data- Returns:
- the decoded data
- Throws:
DecodingException
- when anyException
is thrown from the underlying decoder, or the output is null.
-
encodeURLSafe
Base64URL encodes the given binary data.This is compliant with RFC 4648, Section 5: "Base 64 Encoding with URL and Filename Safe Alphabet".
- Parameters:
data
- data to encode- Returns:
- the base64url encoded data
- Throws:
EncodingException
- if the input data can not be encoded as a base64 string.
-
decodeURLSafe
Decodes (un)chunked Base64URL encoded data.This is compliant with RFC 4648, Section 5: "Base 64 Encoding with URL and Filename Safe Alphabet".
- Parameters:
data
- Base64URL encoded data- Returns:
- the decoded data
- Throws:
DecodingException
- if unable to decode the input data.
-