@Override public String createStringToSign(HttpRequest input) { return input.getFirstHeaderOrNull(DATE); }
@Override public AdaptTempAuthResponseToAccess setContext(HttpRequest request) { String host = request.getEndpoint().getHost(); this.host = host; this.username = request.getFirstHeaderOrNull(identityHeaderNameUser); return this; } }
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(); } }
@VisibleForTesting void appendHttpHeaders(HttpRequest request, StringBuilder toSign) { // Only the value is used, not the header // name. If a request does not include the header, this is an empty string. toSign.append(HttpUtils.nullToEmpty(request.getHeaders().get("Range")).toLowerCase()).append("\n"); // Standard HTTP header, in UTC format. Only the date value is used, not the header name. toSign.append(request.getFirstHeaderOrNull(HttpHeaders.DATE)).append("\n"); }
@VisibleForTesting void appendHttpHeaders(HttpRequest request, StringBuilder toSign) { // Only the value is used, not the header // name. If a request does not include the header, this is an empty string. for (String header : new String[] { "Range" }) toSign.append(HttpUtils.nullToEmpty(request.getHeaders().get(header)).toLowerCase()).append("\n"); // Standard HTTP header, in UTC format. Only the date value is used, not the header name. toSign.append(request.getFirstHeaderOrNull(HttpHeaders.DATE)).append("\n"); }
@VisibleForTesting void appendHttpHeaders(HttpRequest request, StringBuilder toSign) { // Only the value is used, not the header // name. If a request does not include the header, this is an empty string. toSign.append(HttpUtils.nullToEmpty(request.getHeaders().get("Range")).toLowerCase()).append("\n"); // Standard HTTP header, in UTC format. Only the date value is used, not the header name. toSign.append(request.getFirstHeaderOrNull(HttpHeaders.DATE)).append("\n"); }
@Test void testAddsSecurityToken() { HttpRequest filtered = filter(temporaryCredentials).filter(bucketFooExists); assertEquals(filtered.getFirstHeaderOrNull("Authorization"), "AWS AKIAIOSFODNN7EXAMPLE:0fUhWTaRBcIvIAndg2C+5eLfE24="); assertEquals(filtered.getFirstHeaderOrNull("x-amz-security-token"), temporaryCredentials.getSessionToken()); } }
@Test void testFilterReplacesOldValues() throws IOException, NoSuchAlgorithmException, InvalidKeyException { HttpRequest request = newRequest(inputHeaders().put(AtmosHeaders.SIGNATURE, "foo") .put(HttpHeaders.DATE, "foo").put(AtmosHeaders.DATE, "foo").put(AtmosHeaders.UID, "foo") .build()); request = filter.filter(request); assertEquals(request.getFirstHeaderOrNull(AtmosHeaders.SIGNATURE), EXPECTED_SIGNATURE); }
@Test public void testApply() { HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://localhost").build(); request = filter.filter(request); assertEquals(request.getHeaders().size(), 2); assertEquals(request.getFirstHeaderOrNull(HttpHeaders.COOKIE), "vcloud-token=token"); assertEquals(request.getFirstHeaderOrNull("x-vcloud-authorization"), "token"); }
@Test void testFilter() throws IOException, NoSuchAlgorithmException, InvalidKeyException { HttpRequest request = newRequest(inputHeaders().build()); request = filter.filter(request); assertEquals(request.getFirstHeaderOrNull(AtmosHeaders.SIGNATURE), EXPECTED_SIGNATURE); }
public void testAuth() { HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://localhost").build(); request = new BasicAuthentication(ofInstance(credential1)).filter(request); assertEquals(request.getFirstHeaderOrNull(AUTHORIZATION), "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="); request = new BasicAuthentication(ofInstance(credential2)).filter(request); assertEquals(request.getFirstHeaderOrNull(AUTHORIZATION), "Basic TGl0dGxlOk1lcm1haWQ="); }
@Test public void testApply() { HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://localhost").build(); request = filter.filter(request); assertEquals(request.getHeaders().size(), 1); assertEquals(request.getFirstHeaderOrNull(HttpHeaders.COOKIE), "vcloud-token=token"); }
@Override public HttpResponse invoke(HttpCommand command) { assertEquals(command.getCurrentRequest().getFirstHeaderOrNull("header"), "theheaderparam"); return HttpResponse.builder().build(); } });
public void testTags() { UserMetadata tagsdata = new UserMetadata(); tagsdata.getTags().add("apple"); tagsdata.getTags().add("sushi"); HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://localhost").build(); request = binder.bindToRequest(request, tagsdata); assertEquals(request.getFirstHeaderOrNull("x-emc-tags"), "apple,sushi"); }
public void testListableMeta() { UserMetadata metadata = new UserMetadata(); metadata.getListableMetadata().put("apple", "bear"); metadata.getListableMetadata().put("sushi", "king"); HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://localhost").build(); request = binder.bindToRequest(request, metadata); assertEquals(request.getFirstHeaderOrNull("x-emc-listable-meta"), "apple=bear,sushi=king"); }
public void testListableTags() { UserMetadata tagsdata = new UserMetadata(); tagsdata.getListableTags().add("apple"); tagsdata.getListableTags().add("sushi"); HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://localhost").build(); request = binder.bindToRequest(request, tagsdata); assertEquals(request.getFirstHeaderOrNull("x-emc-listable-tags"), "apple,sushi"); }
public void testMeta() { UserMetadata metadata = new UserMetadata(); metadata.getMetadata().put("apple", "bear"); metadata.getMetadata().put("sushi", "king"); HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://localhost").build(); request = binder.bindToRequest(request, metadata); assertEquals(request.getFirstHeaderOrNull("x-emc-meta"), "apple=bear,sushi=king"); }
public void testGood() { AtmosObject object = injector.getInstance(AtmosObject.Factory.class).create(null); Payload payload = Payloads.newStringPayload(""); object.setPayload(payload); object.getUserMetadata().getListableMetadata().put("apple", "bear"); object.getUserMetadata().getListableMetadata().put("sushi", "king"); HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://localhost").build(); request = binder.bindToRequest(request, object); assertEquals(request.getFirstHeaderOrNull("x-emc-listable-meta"), "apple=bear,sushi=king"); }
public void testGood() { AtmosObject object = injector.getInstance(AtmosObject.Factory.class).create(null); Payload payload = Payloads.newStringPayload(""); object.setPayload(payload); object.getUserMetadata().getListableMetadata().put("apple", "bear"); object.getUserMetadata().getListableMetadata().put("sushi", "king"); HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://localhost").build(); request = binder.bindToRequest(request, object); assertEquals(request.getFirstHeaderOrNull("x-emc-listable-meta"), "apple=bear,sushi=king"); }