@Override public Access apply(HttpResponse from) { releasePayload(from); URI storageUrl = null; String authToken = null; for (Map.Entry<String, String> entry : from.getHeaders().entries()) { String header = entry.getKey(); if (header.equalsIgnoreCase(STORAGE_URL)) { storageUrl = getURI(entry.getValue()); } else if (header.equalsIgnoreCase(AUTH_TOKEN)) { authToken = entry.getValue(); } } if (storageUrl == null || authToken == null) { throw new AuthorizationException("Invalid headers in TempAuth response " + from); } // For portability with keystone, based on common knowledge that these tokens tend to expire in 24 hours // http://docs.openstack.org/api/openstack-object-storage/1.0/content/authentication-object-dev-guide.html Date expires = new Date(System.currentTimeMillis() + TimeUnit.HOURS.toMillis(24)); return Access.builder() .user(User.builder().id(username).name(username).build()) .token(Token.builder().id(authToken).expires(expires).build()) .service(Service.builder().name("Object Storage").type(OBJECT_STORE) .endpoint(Endpoint.builder().publicURL(storageUrl).id(apiVersion).region(storageUrl.getHost()).build()) .build()).build(); }
@Override public Access apply(HttpResponse from) { releasePayload(from); URI storageUrl = null; String authToken = null; for (Map.Entry<String, String> entry : from.getHeaders().entries()) { String header = entry.getKey(); if (header.equalsIgnoreCase(STORAGE_URL)) { storageUrl = getURI(entry.getValue()); } else if (header.equalsIgnoreCase(AUTH_TOKEN)) { authToken = entry.getValue(); } } if (storageUrl == null || authToken == null) { throw new AuthorizationException("Invalid headers in TempAuth response " + from); } // For portability with keystone, based on common knowledge that these tokens tend to expire in 24 hours // http://docs.openstack.org/api/openstack-object-storage/1.0/content/authentication-object-dev-guide.html Date expires = new Date(System.currentTimeMillis() + TimeUnit.HOURS.toMillis(24)); return Access.builder() .user(User.builder().id(username).name(username).build()) .token(Token.builder().id(authToken).expires(expires).build()) .service(Service.builder().name("Object Storage").type(OBJECT_STORE) .endpoint(Endpoint.builder().publicURL(storageUrl).id(apiVersion).region(storageUrl.getHost()).build()) .build()).build(); }
@Override public Access apply(HttpResponse from) { releasePayload(from); URI storageUrl = null; String authToken = null; for (Map.Entry<String, String> entry : from.getHeaders().entries()) { String header = entry.getKey(); if (header.equalsIgnoreCase(STORAGE_URL)) { storageUrl = getURI(entry.getValue()); } else if (header.equalsIgnoreCase(AUTH_TOKEN)) { authToken = entry.getValue(); } } if (storageUrl == null || authToken == null) { throw new AuthorizationException("Invalid headers in TempAuth response " + from); } // For portability with keystone, based on common knowledge that these tokens tend to expire in 24 hours // http://docs.openstack.org/api/openstack-object-storage/1.0/content/authentication-object-dev-guide.html Date expires = new Date(System.currentTimeMillis() + TimeUnit.HOURS.toMillis(24)); return Access.builder() .user(User.builder().id(username).name(username).build()) .token(Token.builder().id(authToken).expires(expires).build()) .service(Service.builder().name("Object Storage").type(OBJECT_STORE) .endpoint(Endpoint.builder().publicURL(storageUrl).id(apiVersion).region(storageUrl.getHost()).build()) .build()).build(); }
.publicURL("https://ord.queues.api.rackspacecloud.com/v1/40806637803162") .internalURL("https://snet-ord.queues.api.rackspacecloud.com/v1/40806637803162") .region("ORD").build()).build()).build();
.publicURL("http://172.16.0.1:8776/v1/3456") .tenantId("3456") .build()).build()).build();
.publicURL("https://ord.queues.api.rackspacecloud.com/v1/40806637803162") .internalURL("https://snet-ord.queues.api.rackspacecloud.com/v1/40806637803162") .region("ORD").build()).build()).build();
.name("demo") .role(Role.builder().name("Member").build()).build()).build();
.publicURL("http://172.16.0.1:8776/v1/3456") .tenantId("3456") .build()).build()).build();
.internalURL("http://10.0.1.13:5000/v2.0") .publicURL("http://10.0.1.13:5000/v2.0") .region("RegionOne").build()).build()).build();
.name("demo") .role(Role.builder().name("Member").build()).build()).build();
.tenantId("MossoCloudFS_dc1f419c-5059-4c87-a389-3f2e33a77b22") .publicURL("https://cdn1.clouddrive.com/v1/MossoCloudFS_dc1f419c-5059-4c87-a389-3f2e33a77b22") .region("DFW").build()).build()).build();
.internalURL("http://10.0.1.13:5000/v2.0") .publicURL("http://10.0.1.13:5000/v2.0") .region("RegionOne").build()).build()).build();
/** * Injects into the guts of jclouds' openstack-keystone a token that was requested, which * should last for only 5 seconds. By sleeping for 10 seconds in the test, it should mean * the token subsequently used by jclouds will expire by the time the second half of the * test executes. */ private void injectShortLivedTokenForSwiftAuth() throws Exception { URL endpointUrl = new URL(endpoint); Credentials creds = new Credentials(identity, credential); Set<Service> services = getServices(creds); HttpToolResponse tokenHttpResponse1 = requestTokenWithExplicitLifetime(endpointUrl, identity, credential, Duration.FIVE_SECONDS); Access access = Access.builder() .user(User.builder() .id(identity) .name(identity) .build()) .token(Token.builder() .id(tokenHttpResponse1.getHeaderLists().get(AuthHeaders.AUTH_TOKEN).get(0)) .expires(new Date(System.currentTimeMillis() + 5000)) .build()) .services(services) .build(); getAuthCache(context).put(creds, access); }
@Override @SelectJson("access") @Consumes(MediaType.APPLICATION_JSON) public Access expected() { return Access.builder() .token(Token.builder() .expires(new SimpleDateFormatDateService().iso8601SecondsDateParse("2012-12-02T01:44:54Z")) .id("5afc3adea6654e758b4a9cf01bafe507").build()) .user(User.builder() .id("bf45fd7586c2410c980c651b918aa850") .name("nova") // .username("nova") TODO: add optional username field! .build()).build(); }
@Override @SelectJson("access") @Consumes(MediaType.APPLICATION_JSON) public Access expected() { return Access.builder() .token(Token.builder() .expires(new SimpleDateFormatDateService().iso8601SecondsDateParse("2012-12-02T01:44:54Z")) .id("5afc3adea6654e758b4a9cf01bafe507").build()) .user(User.builder() .id("bf45fd7586c2410c980c651b918aa850") .name("nova") // .username("nova") TODO: add optional username field! .build()).build(); }