protected String[] decodeRememberMeTokens(Cookie cookie) { String encodedTokenString = cookie.getValue(); for (int j = 0; j < encodedTokenString.length() % 4; j++) { encodedTokenString = encodedTokenString + "="; } if(!Base64.isBase64(encodedTokenString)) { log.debug("The remember-me cookie is not a valid base64 string"); return null; } String decodedTokenString = Base64.decode(encodedTokenString); String[] tokens = Strings.split(decodedTokenString, ':'); if(tokens.length != 3){ return null; } return tokens; }
public static String encodeSecretKey(SecretKey key) { return Base64.encode(key.getEncoded()); }
public static SecretKey decodeSecretKey(String encoded) { return new SecretKeySpec(Base64.decodeToBytes(encoded), ALGORITHM); }
/** * Tests a given byte array to see if it contains only valid characters within the Base64 alphabet. Currently the * method treats whitespace as valid. * * @param base64Bytes byte array to test * @return <code>true</code> if all bytes are valid characters in the Base64 alphabet or if the byte array is empty; * <code>false</code>, otherwise */ public static boolean isBase64(byte[] base64Bytes) { if (null == base64Bytes) { return false; } for (int i = 0; i < base64Bytes.length; i++) { if (!isBase64(base64Bytes[i]) && !isWhiteSpace(base64Bytes[i])) { return false; } } return true; }
protected String[] extractClientCredentials(Request request, Response response) { String authorization = request.getHeader(Headers.AUTHORIZATION); if(!Strings.isEmpty(authorization)){ if(!authorization.startsWith("Basic")){ error(response, 400, INVALID_REQUEST, "invalid Authorization header"); return null; } String base64Token = Strings.trim(authorization.substring("Basic".length())); String token = Base64.decode(base64Token); String[] idAndSecret = Strings.split(token,":"); if(idAndSecret.length != 2){ error(response, 400, INVALID_REQUEST, "invalid Authorization header"); return null; } return new String[]{idAndSecret[0],idAndSecret[1]}; } return new String[]{request.getParameter("client_id"), request.getParameter("client_secret")}; }
/** * Tests a given String to see if it contains only valid characters within the Base64 alphabet. Currently the method * treats whitespace as valid. * * @param base64 String to test * @return <code>true</code> if all characters in the String are valid characters in the Base64 alphabet or if the * String is empty; <code>false</code>, otherwise */ public static boolean isBase64(String base64) { return null == base64 ? false : isBase64(Strings.getBytesUtf8(base64)); }
public String getLogoutToken() { if(null == logoutToken) { logoutToken = Base64.urlEncode("logout"); } return logoutToken; }
/** * Encodes binary data using the base64 algorithm but does not chunk the output. * * @param binaryData binary data to encode * * @return String containing Base64 characters. */ public static String encode(byte[] data) { if (null == data) { return Strings.EMPTY; } return Strings.newStringUtf8(encodeToBytes(data)); }
String token = Base64.decode(base64Token); String[] idAndSecret = Strings.split(token,":"); if(idAndSecret.length != 2){
public static String base64UrlEncode(byte[] data) { String encoded = new String(Base64.urlEncode(data)); //removes all the '=' characters StringBuilder sb = new StringBuilder(encoded); while (sb.charAt(sb.length() - 1) == '=') { sb.deleteCharAt(sb.length() - 1); } return sb.toString(); }
/** * Encodes binary data using the base64 algorithm but does not chunk the output. * * @param binaryData binary data to encode * * @return String containing Base64 characters. */ public static String encode(String data) { if (null == data) { return Strings.EMPTY; } return Strings.newStringUtf8(encodeToBytes(data)); }
/** * Calculates the MD5 digest and returns the value as a base64 string. * * @param data Data to digest * @return MD5 digest as a base64 string */ public static String md5Base64(String data) { return Base64.encode(md5(data)); }
String token = Base64.decode(base64Token); String[] idAndSecret = Strings.split(token, ":"); if (idAndSecret.length != 2) {
/** * Decodes Base64 data into utf8 string. * * @param base64 String containing Base64 data * * @return String containing decoded data. */ public static String decode(byte[] base64) { return Strings.newStringUtf8(decodeToBytes(base64)); }
/** * Calculates the MD5 digest and returns the value as a base64 string. * * @param data Data to digest * @return MD5 digest as a base64 string */ public static String md5Base64(byte[] data) { return Base64.encode(md5(data)); }
/** * Decodes Base64 data into utf8 string. * * @param base64 String containing Base64 data * * @return String containing decoded data. */ public static String decode(String base64) { return Strings.newStringUtf8(decodeToBytes(base64)); }
/** * Calculates the MD5 digest and returns the value as a base64 string. * * @param data Data to digest * @return MD5 digest as a base64 string * @throws IOException On error reading from the stream * @since 1.4 */ public static String md5Base64(InputStream data) throws IOException { return Base64.encode(md5(data)); }
/** * Decodes Base64 data into byte array. * * @param base64 String containing Base64 data * * @return Array containing decoded data. */ public static byte[] decodeToBytes(String base64) { if (null == base64) { return Arrays2.EMPTY_BYTE_ARRAY; } return decodeToBytes(Strings.getBytesUtf8(base64)); }
public static String base64Hmac256(byte[] secret, String data) { return Base64.encode(hmac256(secret, data)); }