@Override protected ClientHttpRequest createRequest(URI url, HttpMethod method) throws IOException { ClientHttpRequest httpRequest = super.createRequest(url, method); httpRequest.getHeaders().add("Authorization", String.format("Basic %s", Base64.encode(String.format("%s:%s", clientId, clientSecret)) )); return httpRequest; } };
/** * Base64-encodes the specified byte array. * * @param bytes The byte array to encode. Must not be {@code null}. * * @return The resulting Base64 object. */ public static Base64 encode(final byte[] bytes) { return new Base64(Base64Codec.encodeToString(bytes, false)); }
/** * Decodes this Base64 object to an unsigned big integer. * * <p>Same as {@code new BigInteger(1, base64.decode())}. * * @return The resulting big integer. */ public BigInteger decodeToBigInteger() { return new BigInteger(1, decode()); }
private String[] getNamePassword(HttpServletRequest httpRequest) { String authValue = httpRequest.getHeader("Authorization"); if (authValue != null && authValue.startsWith("Basic ")) { String encodedValue = authValue.substring(6); String decodedValue = new Base64(encodedValue).decodeToString(); final String[] namePassword = decodedValue.contains(":") ? decodedValue.split(":") : new String[] { decodedValue, "" }; return namePassword; } else if (httpRequest.getContentType().contains("application/x-www-form-urlencoded")) { String clientId = httpRequest.getParameter("client_id"); String clientSecret = httpRequest.getParameter("client_secret"); if (clientId == null || clientSecret == null) { return null; } return new String[]{clientId, clientSecret}; } else { return null; } }
/** * Overrides {@code Object.equals()}. * * @param object The object to compare to. * * @return {@code true} if the objects have the same value, otherwise * {@code false}. */ @Override public boolean equals(final Object object) { return object != null && object instanceof Base64 && this.toString().equals(object.toString()); }
/** * Converts the specified JSON array of strings to a list of Base64 * encoded objects. * * @param jsonArray The JSON array of string, {@code null} if not * specified. * * @return The Base64 list, {@code null} if not specified. * * @throws ParseException If parsing failed. */ public static List<Base64> toBase64List(final JSONArray jsonArray) throws ParseException { if (jsonArray == null) return null; List<Base64> chain = new LinkedList<>(); for (int i=0; i < jsonArray.size(); i++) { Object item = jsonArray.get(i); if (item == null) { throw new ParseException("The X.509 certificate at position " + i + " must not be null", 0); } if (! (item instanceof String)) { throw new ParseException("The X.509 certificate at position " + i + " must be encoded as a Base64 string", 0); } chain.add(new Base64((String)item)); } return chain; }
/** * Decodes this Base64 object to a string. * * @return The resulting string, in the UTF-8 character set. */ public String decodeToString() { return new String(decode(), StandardCharset.UTF_8); }
jwk.setX5c(nimbusJwk.getX509CertChain().stream().map(cert -> cert.toString()).collect(Collectors.toSet()));
@Override protected ClientHttpRequest createRequest(URI url, HttpMethod method) throws IOException { ClientHttpRequest httpRequest = super.createRequest(url, method); httpRequest.getHeaders().add("Authorization", String.format("Basic %s", Base64.encode(String.format("%s:%s", UriUtils.encodePathSegment(clientConfig.getClientId(), "UTF-8"), UriUtils.encodePathSegment(clientConfig.getClientSecret(), "UTF-8"))))); return httpRequest; } };
JWSHeader.Builder builder = new Builder(JWSAlgorithm.RS256); List<Base64> certs = new ArrayList<Base64>(); certs.add(new Base64(credential.getPublicCertificate())); builder.x509CertChain(certs); builder.x509CertThumbprint(new Base64URL(credential
X509Certificate cert = X509CertUtils.parse(b64List.get(i).decode());
/** * Convert secret to bytes honoring {@link RegisteredServiceProperty.RegisteredServiceProperties#TOKEN_SECRETS_ARE_BASE64_ENCODED} * config parameter. * * @param secret - String to be represented to byte[] * @param secretIsBase64Encoded - is this a base64 encoded #secret? * @return byte[] representation of #secret */ private static byte[] getSecretBytes(final String secret, final boolean secretIsBase64Encoded) { return secretIsBase64Encoded ? new Base64(secret).decode() : secret.getBytes(UTF_8); } }
/** * Base64-encodes the specified string. * * @param text The string to encode. Must be in the UTF-8 character set * and not {@code null}. * * @return The resulting Base64 object. */ public static Base64 encode(final String text) { return encode(text.getBytes(StandardCharset.UTF_8)); } }
JWSHeader.Builder builder = new Builder(JWSAlgorithm.RS256); List<Base64> certs = new ArrayList<Base64>(); certs.add(new Base64(credential.getPublicCertificate())); builder.x509CertChain(certs); builder.x509CertThumbprint(new Base64URL(credential