Example usage for org.apache.http.client.methods HttpRequestBase getLastHeader

List of usage examples for org.apache.http.client.methods HttpRequestBase getLastHeader

Introduction

In this page you can find the example usage for org.apache.http.client.methods HttpRequestBase getLastHeader.

Prototype

public Header getLastHeader(String str) 

Source Link

Usage

From source file:org.hardisonbrewing.s3j.FileSyncer.java

private String signature(String accessKey, long expires, String resource, HttpRequestBase request)
        throws Exception {

    StringBuffer stringBuffer = new StringBuffer();

    // HTTP-VERB/*from w  ww  .  j  av  a  2 s .  c om*/
    stringBuffer.append(request.getMethod());
    stringBuffer.append("\n");

    // Content-MD5
    //        if ( !( request instanceof HttpEntityEnclosingRequestBase ) ) {
    stringBuffer.append("\n");
    //        }
    //        else {
    //            HttpEntityEnclosingRequestBase entityRequest = (HttpEntityEnclosingRequestBase) request;
    //            HttpEntity entity = entityRequest.getEntity();
    //            stringBuffer.append( md5( IOUtil.toByteArray( entity.getContent() ) ) );
    //            stringBuffer.append( "\n" );
    //        }

    //Content-Type
    //        if ( !( request instanceof HttpEntityEnclosingRequestBase ) ) {
    stringBuffer.append("\n");
    //        }
    //        else {
    //            HttpEntityEnclosingRequestBase entityRequest = (HttpEntityEnclosingRequestBase) request;
    //            HttpEntity entity = entityRequest.getEntity();
    //            stringBuffer.append( entity.getContentType().getValue() );
    //            stringBuffer.append( "\n" );
    //        }

    // Expires
    boolean hasAmzDateHeader = request.getLastHeader("x-amz-date") != null;
    stringBuffer.append(hasAmzDateHeader ? "" : expires);
    stringBuffer.append("\n");

    // CanonicalizedAmzHeaders
    for (Header header : request.getAllHeaders()) {
        String name = header.getName();
        if (name.startsWith("x-amz")) {
            stringBuffer.append(name);
            stringBuffer.append(":");
            stringBuffer.append(header.getValue());
            stringBuffer.append("\n");
        }
    }

    stringBuffer.append(resource); // CanonicalizedResource

    String signature = stringBuffer.toString();
    byte[] bytes = signature.getBytes("UTF-8");
    bytes = hmacSHA1(accessKey, bytes);
    signature = Base64.encodeBase64String(bytes);
    return signature;
}