public static String toHexString(byte[] data) { StringBuilder buffer = StringBuilderPool.DEFAULT.stringBuilder(); for (byte aData : data) { buffer.append(Integer.toHexString((aData & 0xf0) >>> 4)); buffer.append(Integer.toHexString(aData & 0x0f)); } return buffer.toString(); }
public static String patchContentTypeWithBoundaryAttribute(CharSequence base, byte[] boundary) { StringBuilder sb = StringBuilderPool.DEFAULT.stringBuilder().append(base); if (base.length() != 0 && base.charAt(base.length() - 1) != ';') { sb.append(';'); } return sb.append(' ').append(CONTENT_TYPE_BOUNDARY_ATTRIBUTE).append(new String(boundary, US_ASCII)).toString(); }
protected String withoutQueryWithParams(final List<Param> queryParams) { // concatenate encoded query params StringBuilder sb = StringBuilderPool.DEFAULT.stringBuilder(); encodeAndAppendQueryParams(sb, queryParams); sb.setLength(sb.length() - 1); return sb.toString(); } },
protected String withoutQueryWithParams(final List<Param> queryParams) { // concatenate raw queryParams StringBuilder sb = StringBuilderPool.DEFAULT.stringBuilder(); appendRawQueryParams(sb, queryParams); sb.setLength(sb.length() - 1); return sb.toString(); } };
public String toRelativeUrl() { StringBuilder sb = StringBuilderPool.DEFAULT.stringBuilder(); if (MiscUtils.isNonEmpty(path)) sb.append(path); else sb.append('/'); if (query != null) sb.append('?').append(query); return sb.toString(); }
protected String withQueryWithoutParams(final String query) { // encode query StringBuilder sb = StringBuilderPool.DEFAULT.stringBuilder(); encodeAndAppendQuery(sb, query); return sb.toString(); }
protected String withQueryWithParams(final String query, final List<Param> queryParams) { // concatenate raw query + raw query params StringBuilder sb = StringBuilderPool.DEFAULT.stringBuilder(); sb.append(query); appendRawQueryParams(sb, queryParams); sb.setLength(sb.length() - 1); return sb.toString(); }
String sortAndConcat() { // then sort them (AFTER encoding, important) Collections.sort(parameters); // and build parameter section using pre-encoded pieces: StringBuilder encodedParams = StringBuilderPool.DEFAULT.stringBuilder(); for (Parameter param : parameters) { encodedParams.append(param.key).append('=').append(param.value).append('&'); } int length = encodedParams.length(); if (length > 0) { encodedParams.setLength(length - 1); } return encodedParams.toString(); } }
public String toUrl() { if (url == null) { StringBuilder sb = StringBuilderPool.DEFAULT.stringBuilder(); sb.append(scheme).append("://"); if (userInfo != null) sb.append(userInfo).append('@'); sb.append(host); if (port != -1) sb.append(':').append(port); if (path != null) sb.append(path); if (query != null) sb.append('?').append(query); url = sb.toString(); sb.setLength(0); } return url; }
protected String withQueryWithParams(final String query, final List<Param> queryParams) { // concatenate encoded query + encoded query params StringBuilder sb = StringBuilderPool.DEFAULT.stringBuilder(); encodeAndAppendQuery(sb, query); sb.append('&'); encodeAndAppendQueryParams(sb, queryParams); sb.setLength(sb.length() - 1); return sb.toString(); }
/** * @return [scheme]://[hostname](:[port])/path. Port is omitted if it matches the scheme's default one. */ public String toBaseUrl() { StringBuilder sb = StringBuilderPool.DEFAULT.stringBuilder(); sb.append(scheme).append("://").append(host); if (port != -1 && port != getSchemeDefaultPort()) { sb.append(':').append(port); } if (isNonEmpty(path)) { sb.append(path); } return sb.toString(); }
String computeAuthorizationHeader(ConsumerKey consumerAuth, RequestToken userAuth, String signature, long oauthTimestamp, String percentEncodedNonce) { StringBuilder sb = StringBuilderPool.DEFAULT.stringBuilder(); sb.append("OAuth "); sb.append(KEY_OAUTH_CONSUMER_KEY).append("=\"").append(consumerAuth.getPercentEncodedKey()).append("\", "); if (userAuth.getKey() != null) { sb.append(KEY_OAUTH_TOKEN).append("=\"").append(userAuth.getPercentEncodedKey()).append("\", "); } sb.append(KEY_OAUTH_SIGNATURE_METHOD).append("=\"").append(OAUTH_SIGNATURE_METHOD).append("\", "); // careful: base64 has chars that need URL encoding: sb.append(KEY_OAUTH_SIGNATURE).append("=\""); Utf8UrlEncoder.encodeAndAppendPercentEncoded(sb, signature).append("\", "); sb.append(KEY_OAUTH_TIMESTAMP).append("=\"").append(oauthTimestamp).append("\", "); sb.append(KEY_OAUTH_NONCE).append("=\"").append(percentEncodedNonce).append("\", "); sb.append(KEY_OAUTH_VERSION).append("=\"").append(OAUTH_VERSION_1_0).append("\""); return sb.toString(); } }
private static StringBuilder urlEncodeFormParams0(List<Param> params, Charset charset) { StringBuilder sb = StringBuilderPool.DEFAULT.stringBuilder(); for (Param param : params) { encodeAndAppendFormParam(sb, param.getName(), param.getValue(), charset); } sb.setLength(sb.length() - 1); return sb; }
public static String originHeader(Uri uri) { StringBuilder sb = StringBuilderPool.DEFAULT.stringBuilder(); sb.append(uri.isSecured() ? "https://" : "http://").append(uri.getHost()); if (uri.getExplicitPort() != uri.getSchemeDefaultPort()) { sb.append(':').append(uri.getPort()); } return sb.toString(); }
public void run(Timeout timeout) { if (done.getAndSet(true) || requestSender.isClosed()) return; // in any case, cancel possible readTimeout sibling timeoutsHolder.cancel(); if (nettyResponseFuture.isDone()) return; StringBuilder sb = StringBuilderPool.DEFAULT.stringBuilder().append("Request timeout to "); appendRemoteAddress(sb); String message = sb.append(" after ").append(requestTimeout).append(" ms").toString(); long age = unpreciseMillisTime() - nettyResponseFuture.getStart(); expire(message, age); } }
private byte[] digest(ConsumerKey consumerAuth, RequestToken userAuth, ByteBuffer message) throws InvalidKeyException { StringBuilder sb = StringBuilderPool.DEFAULT.stringBuilder(); Utf8UrlEncoder.encodeAndAppendQueryElement(sb, consumerAuth.getSecret()); sb.append('&'); if (userAuth != null && userAuth.getSecret() != null) { Utf8UrlEncoder.encodeAndAppendQueryElement(sb, userAuth.getSecret()); } byte[] keyBytes = StringUtils.charSequence2Bytes(sb, UTF_8); SecretKeySpec signingKey = new SecretKeySpec(keyBytes, HMAC_SHA1_ALGORITHM); mac.init(signingKey); mac.reset(); mac.update(message); return mac.doFinal(); }
StringBuilder signatureBaseString(ConsumerKey consumerAuth, RequestToken userAuth, Uri uri, String method, List<Param> formParams, List<Param> queryParams, long oauthTimestamp, String percentEncodedNonce) { // beware: must generate first as we're using pooled StringBuilder String baseUrl = uri.toBaseUrl(); String encodedParams = encodedParams(consumerAuth, userAuth, oauthTimestamp, percentEncodedNonce, formParams, queryParams); StringBuilder sb = StringBuilderPool.DEFAULT.stringBuilder(); sb.append(method); // POST / GET etc (nothing to URL encode) sb.append('&'); Utf8UrlEncoder.encodeAndAppendPercentEncoded(sb, baseUrl); // and all that needs to be URL encoded (... again!) sb.append('&'); Utf8UrlEncoder.encodeAndAppendPercentEncoded(sb, encodedParams); return sb; }
StringBuilder sb = StringBuilderPool.DEFAULT.stringBuilder().append("Read timeout to "); appendRemoteAddress(sb); String message = sb.append(" after ").append(readTimeout).append(" ms").toString();
private void newResponse(MessageDigest md) { // when using preemptive auth, the request uri is missing if (uri != null) { // BEWARE: compute first as it uses the cached StringBuilder String digestUri = AuthenticatorUtils.computeRealmURI(uri, useAbsoluteURI, omitQuery); StringBuilder sb = StringBuilderPool.DEFAULT.stringBuilder(); // WARNING: DON'T MOVE, BUFFER IS RECYCLED!!!! byte[] ha1 = ha1(sb, md); byte[] ha2 = ha2(sb, digestUri, md); appendBase16(sb, ha1); appendMiddlePart(sb); appendBase16(sb, ha2); byte[] responseDigest = md5FromRecycledStringBuilder(sb, md); response = toHexString(responseDigest); } }