Example usage for com.google.common.collect SortedSetMultimap containsKey

List of usage examples for com.google.common.collect SortedSetMultimap containsKey

Introduction

In this page you can find the example usage for com.google.common.collect SortedSetMultimap containsKey.

Prototype

boolean containsKey(@Nullable Object key);

Source Link

Document

Returns true if this multimap contains at least one key-value pair with the key key .

Usage

From source file:org.gaul.s3proxy.AwsSignature.java

/**
 * Create Amazon V2 signature.  Reference:
 * http://docs.aws.amazon.com/general/latest/gr/signature-version-2.html
 *//* w  w w  .  j  ava 2s  . c  o  m*/
static String createAuthorizationSignature(HttpServletRequest request, String uri, String credential) {
    // sort Amazon headers
    SortedSetMultimap<String, String> canonicalizedHeaders = TreeMultimap.create();
    for (String headerName : Collections.list(request.getHeaderNames())) {
        Collection<String> headerValues = Collections.list(request.getHeaders(headerName));
        headerName = headerName.toLowerCase();
        if (!headerName.startsWith("x-amz-")) {
            continue;
        }
        if (headerValues.isEmpty()) {
            canonicalizedHeaders.put(headerName, "");
        }
        for (String headerValue : headerValues) {
            canonicalizedHeaders.put(headerName, Strings.nullToEmpty(headerValue));
        }
    }

    // build string to sign
    StringBuilder builder = new StringBuilder().append(request.getMethod()).append('\n')
            .append(Strings.nullToEmpty(request.getHeader(HttpHeaders.CONTENT_MD5))).append('\n')
            .append(Strings.nullToEmpty(request.getHeader(HttpHeaders.CONTENT_TYPE))).append('\n');
    String expires = request.getParameter("Expires");
    if (expires != null) {
        builder.append(expires);
    } else if (!canonicalizedHeaders.containsKey("x-amz-date")) {
        builder.append(request.getHeader(HttpHeaders.DATE));
    }
    builder.append('\n');
    for (Map.Entry<String, String> entry : canonicalizedHeaders.entries()) {
        builder.append(entry.getKey()).append(':').append(entry.getValue()).append('\n');
    }
    builder.append(uri);

    char separator = '?';
    List<String> subresources = Collections.list(request.getParameterNames());
    Collections.sort(subresources);
    for (String subresource : subresources) {
        if (SIGNED_SUBRESOURCES.contains(subresource)) {
            builder.append(separator).append(subresource);

            String value = request.getParameter(subresource);
            if (!"".equals(value)) {
                builder.append('=').append(value);
            }
            separator = '&';
        }
    }

    String stringToSign = builder.toString();
    logger.trace("stringToSign: {}", stringToSign);

    // sign string
    Mac mac;
    try {
        mac = Mac.getInstance("HmacSHA1");
        mac.init(new SecretKeySpec(credential.getBytes(StandardCharsets.UTF_8), "HmacSHA1"));
    } catch (InvalidKeyException | NoSuchAlgorithmException e) {
        throw new RuntimeException(e);
    }
    return BaseEncoding.base64().encode(mac.doFinal(stringToSign.getBytes(StandardCharsets.UTF_8)));
}

From source file:org.jclouds.s3.filters.RequestAuthorizeSignatureV2.java

public String createStringToSign(HttpRequest request) {
    utils.logRequest(signatureLog, request, ">>");
    SortedSetMultimap<String, String> canonicalizedHeaders = TreeMultimap.create();
    StringBuilder buffer = new StringBuilder();
    // re-sign the request
    appendMethod(request, buffer);//from   ww  w .  j  a v a  2  s .c o m
    appendPayloadMetadata(request, buffer);
    appendHttpHeaders(request, canonicalizedHeaders);

    // Remove default date timestamp if "x-amz-date" is set.
    if (canonicalizedHeaders.containsKey("x-" + headerTag + "-date")) {
        canonicalizedHeaders.removeAll("date");
    }

    appendAmzHeaders(canonicalizedHeaders, buffer);
    appendBucketName(request, buffer);
    appendUriPath(request, buffer);
    if (signatureWire.enabled()) {
        signatureWire.output(buffer.toString());
    }
    return buffer.toString();
}

From source file:org.jclouds.s3.filters.RequestAuthorizeSignature.java

public String createStringToSign(HttpRequest request) {
    utils.logRequest(signatureLog, request, ">>");
    SortedSetMultimap<String, String> canonicalizedHeaders = TreeMultimap.create();
    StringBuilder buffer = new StringBuilder();
    // re-sign the request
    appendMethod(request, buffer);/*from   ww w. ja  v  a 2 s  . co m*/
    appendPayloadMetadata(request, buffer);
    appendHttpHeaders(request, canonicalizedHeaders);

    // Remove default date timestamp if "x-amz-date" is set.
    if (canonicalizedHeaders.containsKey("x-" + headerTag + "-date")) {
        canonicalizedHeaders.removeAll("date");
    }

    appendAmzHeaders(canonicalizedHeaders, buffer);
    appendBucketName(request, buffer);
    appendUriPath(request, buffer);
    if (signatureWire.enabled())
        signatureWire.output(buffer.toString());
    return buffer.toString();
}

From source file:uk.ac.ebi.atlas.bioentity.properties.BioEntityPropertyService.java

public void init(String species, SortedSetMultimap<String, String> propertyValuesByType,
        Multimap<Integer, GoPoTerm> goTerms, Multimap<Integer, GoPoTerm> poTerms, SortedSet<String> entityNames,
        String identifier) {/*from www  . ja v  a 2s  .  c  o  m*/
    this.species = species;
    this.propertyValuesByType = propertyValuesByType;
    this.entityNames = entityNames;
    this.identifier = identifier;
    this.depthToGoTerms = goTerms;
    this.depthToPoTerms = poTerms;

    // this is to add mirbase sequence for ENSEMBL mirnas
    if (propertyValuesByType.containsKey("mirbase_id")
            && !propertyValuesByType.containsKey("mirbase_sequence")) {
        addMirBaseSequence();
    }
}

From source file:org.gaul.s3proxy.S3ProxyHandler.java

/**
 * Create Amazon V2 signature.  Reference:
 * http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
 *//*from ww  w. j  a  va  2 s.co  m*/
private static String createAuthorizationSignature(HttpServletRequest request, String uri, String identity,
        String credential) {
    // sort Amazon headers
    SortedSetMultimap<String, String> canonicalizedHeaders = TreeMultimap.create();
    for (String headerName : Collections.list(request.getHeaderNames())) {
        Collection<String> headerValues = Collections.list(request.getHeaders(headerName));
        headerName = headerName.toLowerCase();
        if (!headerName.startsWith("x-amz-")) {
            continue;
        }
        if (headerValues.isEmpty()) {
            canonicalizedHeaders.put(headerName, "");
        }
        for (String headerValue : headerValues) {
            canonicalizedHeaders.put(headerName, Strings.nullToEmpty(headerValue));
        }
    }

    // build string to sign
    StringBuilder builder = new StringBuilder().append(request.getMethod()).append('\n')
            .append(Strings.nullToEmpty(request.getHeader(HttpHeaders.CONTENT_MD5))).append('\n')
            .append(Strings.nullToEmpty(request.getHeader(HttpHeaders.CONTENT_TYPE))).append('\n');
    String expires = request.getParameter("Expires");
    if (expires != null) {
        builder.append(expires);
    } else if (!canonicalizedHeaders.containsKey("x-amz-date")) {
        builder.append(request.getHeader(HttpHeaders.DATE));
    }
    builder.append('\n');
    for (Map.Entry<String, String> entry : canonicalizedHeaders.entries()) {
        builder.append(entry.getKey()).append(':').append(entry.getValue()).append('\n');
    }
    builder.append(uri);

    char separator = '?';
    List<String> subresources = Collections.list(request.getParameterNames());
    Collections.sort(subresources);
    for (String subresource : subresources) {
        if (SIGNED_SUBRESOURCES.contains(subresource)) {
            builder.append(separator).append(subresource);

            String value = request.getParameter(subresource);
            if (!"".equals(value)) {
                builder.append('=').append(value);
            }
            separator = '&';
        }
    }

    String stringToSign = builder.toString();
    logger.trace("stringToSign: {}", stringToSign);

    // sign string
    Mac mac;
    try {
        mac = Mac.getInstance("HmacSHA1");
        mac.init(new SecretKeySpec(credential.getBytes(StandardCharsets.UTF_8), "HmacSHA1"));
    } catch (InvalidKeyException | NoSuchAlgorithmException e) {
        throw Throwables.propagate(e);
    }
    return BaseEncoding.base64().encode(mac.doFinal(stringToSign.getBytes(StandardCharsets.UTF_8)));
}