List of usage examples for com.google.common.collect SortedSetMultimap containsKey
boolean containsKey(@Nullable Object key);
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))); }