private String createStringToSign(HttpRequest request, long expires) { utils.logRequest(signatureLog, request, ">>"); StringBuilder buffer = new StringBuilder(); buffer.append(request.getMethod()).append("\n"); buffer.append(Strings.nullToEmpty(request.getFirstHeaderOrNull(HttpHeaders.CONTENT_MD5))).append("\n"); buffer.append(Strings.nullToEmpty(request.getFirstHeaderOrNull(HttpHeaders.CONTENT_TYPE))).append("\n"); buffer.append(String.valueOf(expires)).append("\n"); // TODO: extension headers buffer.append(request.getEndpoint().getPath()); return buffer.toString(); } }
private String createStringToSign(HttpRequest request, long expires) { utils.logRequest(signatureLog, request, ">>"); StringBuilder buffer = new StringBuilder(); buffer.append(request.getMethod()).append("\n"); buffer.append(Strings.nullToEmpty(request.getFirstHeaderOrNull(HttpHeaders.CONTENT_MD5))).append("\n"); buffer.append(Strings.nullToEmpty(request.getFirstHeaderOrNull(HttpHeaders.CONTENT_TYPE))).append("\n"); buffer.append(String.valueOf(expires)).append("\n"); // TODO: extension headers buffer.append(request.getEndpoint().getPath()); return buffer.toString(); } }
@Override public HttpRequest filter(HttpRequest request) { String toSign = createStringToSign(); String signatureMd5 = getMd5For(toSign); request = request.toBuilder() .replaceQueryParams(ImmutableMap.of("sig", signatureMd5, "api_key", creds.get().identity)).build(); utils.logRequest(signatureLog, request, "<<"); return request; }
@VisibleForTesting public String createStringToSign(HttpRequest request, Multimap<String, String> decodedParams) { utils.logRequest(signatureLog, request, ">>"); // encode each parameter value first, ImmutableSortedSet.Builder<String> builder = ImmutableSortedSet.naturalOrder(); for (Map.Entry<String, String> entry : decodedParams.entries()) builder.add(entry.getKey() + "=" + Strings2.urlEncode(entry.getValue())); // then, lower case the entire query string String stringToSign = Joiner.on('&').join(builder.build()).toLowerCase(); if (signatureWire.enabled()) signatureWire.output(stringToSign); return stringToSign; }
@Override public HttpRequest filter(HttpRequest request) { String toSign = createStringToSign(); String signatureMd5 = getMd5For(toSign); request = request.toBuilder() .replaceQueryParams(ImmutableMap.of("sig", signatureMd5, "api_key", creds.get().identity)).build(); utils.logRequest(signatureLog, request, "<<"); return request; }
@Override public HttpRequest filter(HttpRequest request) { String toSign = createStringToSign(); String signatureMd5 = getMd5For(toSign); request = request.toBuilder() .replaceQueryParams(ImmutableMap.of("sig", signatureMd5, "api_key", creds.get().identity)).build(); utils.logRequest(signatureLog, request, "<<"); return request; }
@Override public HttpRequest filter(HttpRequest request) { String toSign = createStringToSign(); String signatureMd5 = getMd5For(toSign); request = request.toBuilder() .replaceQueryParams(ImmutableMap.of("sig", signatureMd5, "api_key", creds.get().identity)).build(); utils.logRequest(signatureLog, request, "<<"); return request; }
public HttpRequest filter(HttpRequest request) throws HttpException { request = replaceDateHeader(request); Credentials current = creds.get(); if (current instanceof SessionCredentials) { request = replaceSecurityTokenHeader(request, SessionCredentials.class.cast(current)); } String signature = calculateSignature(createStringToSign(request)); request = replaceAuthorizationHeader(request, signature); utils.logRequest(signatureLog, request, "<<"); return request; }
public HttpRequest filter(HttpRequest request) throws HttpException { request = replaceDateHeader(request); Credentials current = creds.get(); if (current instanceof SessionCredentials) { request = replaceSecurityTokenHeader(request, SessionCredentials.class.cast(current)); } String signature = calculateSignature(createStringToSign(request)); request = replaceAuthorizationHeader(request, signature); utils.logRequest(signatureLog, request, "<<"); return request; }
public HttpRequest filter(HttpRequest request) throws HttpException { request = replaceDateHeader(request); Credentials current = creds.get(); if (current instanceof SessionCredentials) { request = replaceSecurityTokenHeader(request, SessionCredentials.class.cast(current)); } String signature = calculateSignature(createStringToSign(request)); request = replaceAuthorizationHeader(request, signature); utils.logRequest(signatureLog, request, "<<"); return request; }
public HttpRequest filter(HttpRequest request) throws HttpException { request = replaceDateHeader(request); Credentials current = creds.get(); if (current instanceof SessionCredentials) { request = replaceSecurityTokenHeader(request, SessionCredentials.class.cast(current)); } String signature = calculateSignature(createStringToSign(request)); request = replaceAuthorizationHeader(request, signature); utils.logRequest(signatureLog, request, "<<"); return request; }
public void filter(HttpRequest request) throws HttpException { replaceDateHeader(request); String toSign = createStringToSign(request); calculateAndReplaceAuthHeader(request, toSign); utils.logRequest(signatureLog, request, "<<"); }
public String createStringToSign(HttpRequest request) { utils.logRequest(signatureLog, request, ">>"); StringBuilder buffer = new StringBuilder(); // re-sign the request appendMethod(request, buffer); appendPayloadMetadata(request, buffer); appendHttpHeaders(request, buffer); appendCanonicalizedHeaders(request, buffer); appendCanonicalizedResource(request, buffer); if (signatureWire.enabled()) signatureWire.output(buffer.toString()); return buffer.toString(); }
public HttpRequest filter(HttpRequest request) throws HttpException { request = replaceDateHeader(request); String signature = calculateSignature(createStringToSign(request)); request = replaceAuthorizationHeader(request, signature); utils.logRequest(signatureLog, request, "<<"); return request; }
public HttpRequest filter(HttpRequest request) throws HttpException { checkNotNull(request.getFirstHeaderOrNull(HttpHeaders.HOST), "request is not ready to sign; host not present"); Multimap<String, String> decodedParams = queryParser().apply(request.getPayload().getRawContent().toString()); decodedParams.replaceValues(VERSION, ImmutableSet.of(apiVersion)); addSigningParams(decodedParams); validateParams(decodedParams); String stringToSign = createStringToSign(request, decodedParams); String signature = sign(stringToSign); addSignature(decodedParams, signature); request = setPayload(request, decodedParams); utils.logRequest(signatureLog, request, "<<"); return request; }
public HttpRequest filter(HttpRequest request) throws HttpException { checkNotNull(request.getFirstHeaderOrNull(HttpHeaders.HOST), "request is not ready to sign; host not present"); Multimap<String, String> decodedParams = queryParser().apply(request.getPayload().getRawContent().toString()); decodedParams.replaceValues(VERSION, ImmutableSet.of(apiVersion)); addSigningParams(decodedParams); validateParams(decodedParams); String stringToSign = createStringToSign(request, decodedParams); String signature = sign(stringToSign); addSignature(decodedParams, signature); request = setPayload(request, decodedParams); utils.logRequest(signatureLog, request, "<<"); return request; }
public HttpRequest filter(HttpRequest request) throws HttpException { checkNotNull(request, "request must be present"); Multimap<String, String> decodedParams = queryParser().apply(request.getEndpoint().getRawQuery()); addSigningParams(decodedParams); String stringToSign = createStringToSign(request, decodedParams); String signature = sign(stringToSign); addSignature(decodedParams, signature); request = request.toBuilder().endpoint(uriBuilder(request.getEndpoint()).query(decodedParams).build()).build(); utils.logRequest(signatureLog, request, "<<"); return request; }
public HttpRequest filter(HttpRequest request) throws HttpException { checkNotNull(request, "request must be present"); Multimap<String, String> decodedParams = queryParser().apply(request.getEndpoint().getRawQuery()); addSigningParams(decodedParams); String stringToSign = createStringToSign(request, decodedParams); String signature = sign(stringToSign); addSignature(decodedParams, signature); request = request.toBuilder().endpoint(uriBuilder(request.getEndpoint()).query(decodedParams).build()).build(); utils.logRequest(signatureLog, request, "<<"); return request; }
public HttpRequest filter(HttpRequest request) throws HttpException { checkNotNull(request, "request must be present"); Multimap<String, String> decodedParams = queryParser().apply(request.getEndpoint().getRawQuery()); addSigningParams(decodedParams); String stringToSign = createStringToSign(request, decodedParams); String signature = sign(stringToSign); addSignature(decodedParams, signature); request = request.toBuilder().endpoint(uriBuilder(request.getEndpoint()).query(decodedParams).build()).build(); utils.logRequest(signatureLog, request, "<<"); return request; }
public HTTPRequest filterLogAndConvertRe(HttpRequest request) { for (HttpRequestFilter filter : request.getFilters()) { request = filter.filter(request); } checkRequestHasContentLengthOrChunkedEncoding(request, "After filtering, the request has neither chunked encoding nor content length: " + request); logger.debug("Sending request %s: %s", request.hashCode(), request.getRequestLine()); wirePayloadIfEnabled(wire, request); HTTPRequest nativeRequest = convertToGaeRequest.apply(request); utils.logRequest(headerLog, request, ">>"); return nativeRequest; }