/** * Encodes partially encoded string. Encode all values but those matching pattern * "percent char followed by two hexadecimal digits". * * @param encoded fully or partially encoded string. * @return fully encoded string */ public static String encodePartiallyEncoded(String encoded, boolean query) { if (encoded.length() == 0) { return encoded; } Matcher m = ENCODE_PATTERN.matcher(encoded); StringBuilder sb = new StringBuilder(); int i = 0; while (m.find()) { String before = encoded.substring(i, m.start()); sb.append(query ? HttpUtils.queryEncode(before) : HttpUtils.pathEncode(before)); sb.append(m.group()); i = m.end(); } String tail = encoded.substring(i, encoded.length()); sb.append(query ? HttpUtils.queryEncode(tail) : HttpUtils.pathEncode(tail)); return sb.toString(); }
/** * Encodes partially encoded string. Encode all values but those matching pattern * "percent char followed by two hexadecimal digits". * * @param encoded fully or partially encoded string. * @return fully encoded string */ public static String encodePartiallyEncoded(String encoded, boolean query) { if (encoded.length() == 0) { return encoded; } Matcher m = ENCODE_PATTERN.matcher(encoded); if (!m.find()) { return query ? HttpUtils.queryEncode(encoded) : HttpUtils.pathEncode(encoded); } int length = encoded.length(); StringBuilder sb = new StringBuilder(length + 8); int i = 0; do { String before = encoded.substring(i, m.start()); sb.append(query ? HttpUtils.queryEncode(before) : HttpUtils.pathEncode(before)); sb.append(m.group()); i = m.end(); } while (m.find()); String tail = encoded.substring(i, length); sb.append(query ? HttpUtils.queryEncode(tail) : HttpUtils.pathEncode(tail)); return sb.toString(); }
oval = HttpUtils.encodePartiallyEncoded(oval.toString(), isQuery); } else { oval = isQuery ? HttpUtils.queryEncode(oval.toString()) : HttpUtils.pathEncode(oval.toString());
oval = HttpUtils.encodePartiallyEncoded(oval.toString(), isQuery); } else { oval = isQuery ? HttpUtils.queryEncode(oval.toString()) : HttpUtils.pathEncode(oval.toString());
value = HttpUtils.encodePartiallyEncoded(value, isQuery); } else { value = isQuery ? HttpUtils.queryEncode(value) : HttpUtils.pathEncode(value);
protected StringBuilder prepareRedirectResponse(OAuthRedirectionState state, Client client, List<String> requestedScope, List<String> approvedScope, UserSubject userSubject, ServerAccessToken preAuthorizedToken) { ClientAccessToken clientToken = getClientAccessToken(state, client, requestedScope, approvedScope, userSubject, preAuthorizedToken); // return the token by appending it as a fragment parameter to the redirect URI StringBuilder sb = getUriWithFragment(state.getRedirectUri()); sb.append(OAuthConstants.ACCESS_TOKEN).append("=").append(clientToken.getTokenKey()); sb.append("&"); sb.append(OAuthConstants.ACCESS_TOKEN_TYPE).append("=").append(clientToken.getTokenType()); if (isWriteOptionalParameters()) { sb.append("&").append(OAuthConstants.ACCESS_TOKEN_EXPIRES_IN) .append("=").append(clientToken.getExpiresIn()); if (!StringUtils.isEmpty(clientToken.getApprovedScope())) { sb.append("&").append(OAuthConstants.SCOPE).append("=") .append(HttpUtils.queryEncode(clientToken.getApprovedScope())); } for (Map.Entry<String, String> entry : clientToken.getParameters().entrySet()) { sb.append("&").append(entry.getKey()).append("=").append(HttpUtils.queryEncode(entry.getValue())); } } if (clientToken.getRefreshToken() != null) { processRefreshToken(sb, clientToken.getRefreshToken()); } finalizeResponse(sb, state); return sb; }
value = HttpUtils.encodePartiallyEncoded(value, isQuery); } else { value = isQuery ? HttpUtils.queryEncode(value) : HttpUtils.pathEncode(value);
protected StringBuilder prepareRedirectResponse(OAuthRedirectionState state, Client client, List<String> requestedScope, List<String> approvedScope, UserSubject userSubject, ServerAccessToken preAuthorizedToken) { ClientAccessToken clientToken = getClientAccessToken(state, client, requestedScope, approvedScope, userSubject, preAuthorizedToken); // return the token by appending it as a fragment parameter to the redirect URI StringBuilder sb = getUriWithFragment(state.getRedirectUri()); sb.append(OAuthConstants.ACCESS_TOKEN).append("=").append(clientToken.getTokenKey()); sb.append("&"); sb.append(OAuthConstants.ACCESS_TOKEN_TYPE).append("=").append(clientToken.getTokenType()); if (isWriteOptionalParameters()) { sb.append("&").append(OAuthConstants.ACCESS_TOKEN_EXPIRES_IN) .append("=").append(clientToken.getExpiresIn()); if (!StringUtils.isEmpty(clientToken.getApprovedScope())) { sb.append("&").append(OAuthConstants.SCOPE).append("=") .append(HttpUtils.queryEncode(clientToken.getApprovedScope())); } for (Map.Entry<String, String> entry : clientToken.getParameters().entrySet()) { sb.append("&").append(entry.getKey()).append("=").append(HttpUtils.queryEncode(entry.getValue())); } } if (clientToken.getRefreshToken() != null) { processRefreshToken(sb, clientToken.getRefreshToken()); } finalizeResponse(sb, state); return sb; }