@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(); }
/** * @see Access#delegate() */ public T services(Iterable<Service> serviceCatalog) { this.serviceCatalog.addAll(serviceCatalog); return self(); }
public Access expected() { return Access.builder() .token(Token.builder() .expires(new SimpleDateFormatDateService().iso8601DateParse("2012-01-18T21:35:59.050Z")) .id("Auth_4f173437e4b013bee56d1007") .tenant(Tenant.builder().id("40806637803162").name("user@jclouds.org-default-tenant").build()).build()) .user(User.builder() .id("36980896575174").name("user@jclouds.org") .role(Role.builder().id("00000000004022").serviceId("110").name("Admin").tenantId("40806637803162").build()) .role(Role.builder().id("00000000004004").serviceId("100").name("domainuser").build()) .role(Role.builder().id("00000000004016").serviceId("120").name("netadmin").tenantId("40806637803162").build()).build()) .service(Service.builder().name("Object Storage").type(OBJECT_STORE) .endpoint(Endpoint.builder() .tenantId("40806637803162") .id("1.0") .region("region-a.geo-1").build()).build()) .service(Service.builder().name("Identity").type(IDENTITY) .endpoint(Endpoint.builder() .publicURL("https://csnode.jclouds.org/v2.0/") .id("2.0") .versionId("2.0").build()).build()) .service(Service.builder().name("Image Management").type(IMAGE) .endpoint(Endpoint.builder() .tenantId("40806637803162") .region("az-1.region-a.geo-1")
public Access expected() { return Access.builder() .token(Token.builder() .expires(new SimpleDateFormatDateService().iso8601DateParse("2012-06-06T20:56:47.000-05:00")) .id("Auth_4f173437e4b013bee56d1007") .tenant(Tenant.builder().id("40806637803162").name("40806637803162").build()).build()) .user(User.builder() .id("54321") .name("joe") .name("identity:user-admin") .description("User Admin Role.").build()).build()) .service(Service.builder().name("cloudDatabases").type("rax:database") .endpoint(Endpoint.builder() .tenantId("40806637803162") .publicURL("https://ord.databases.api.rackspacecloud.com/v1.0/40806637803162") .region("ORD").build()).build()) .service(Service.builder().name("cloudServers").type("compute") .endpoint(Endpoint.builder() .tenantId("40806637803162") .versionInfo("https://servers.api.rackspacecloud.com/v1.0") .versionList("https://servers.api.rackspacecloud.com/").build()).build()) .service(Service.builder().name("cloudFiles").type("object-store") .endpoint(Endpoint.builder() .tenantId("MossoCloudFS_dc1f419c-5059-4c87-a389-3f2e33a77b22") .internalURL("https://snet-storage101.dfw1.clouddrive.com/v1/MossoCloudFS_dc1f419c-5059-4c87-a389-3f2e33a77b22")
public Access expected() { return Access.builder() .token(Token.builder() .expires(new SimpleDateFormatDateService().iso8601DateParse("2012-06-06T20:56:47.000-05:00")) .id("AADMTnolqiuwewdqwdqsdf2324f4234fndquipwou12e08_qw23f2e32f2qw4rf2432fddi_ar23d2q32p_DJOIASdd32d2323d23dqoiwjdaosiqowdijOAQIDJWqowid0aisjd_ajoisdjaoisdj1209ejdalo___qwdqwd---sdpoaqwdsaasdisdjw023d23q23edasd435gtf3g3w4egf4g4323efasdsdvsdvsasdvjmhfg43OINAOISndqaiosjkdq0w") .tenant(Tenant.builder().id("40806637803162").name("40806637803162").build()).build()) .user(User.builder() .id("54321") .name("joe") .name("identity:user-admin") .description("User Admin Role.").build()).build()) .service(Service.builder().name("cloudDatabases").type("rax:database") .endpoint(Endpoint.builder() .tenantId("40806637803162") .publicURL("https://ord.databases.api.rackspacecloud.com/v1.0/40806637803162") .region("ORD").build()).build()) .service(Service.builder().name("cloudServers").type("compute") .endpoint(Endpoint.builder() .tenantId("40806637803162") .versionInfo("https://servers.api.rackspacecloud.com/v1.0") .versionList("https://servers.api.rackspacecloud.com/").build()).build()) .service(Service.builder().name("cloudFiles").type("object-store") .endpoint(Endpoint.builder() .tenantId("MossoCloudFS_dc1f419c-5059-4c87-a389-3f2e33a77b22") .internalURL("https://snet-storage101.dfw1.clouddrive.com/v1/MossoCloudFS_dc1f419c-5059-4c87-a389-3f2e33a77b22")
public Access expected() { return Access.builder() .token(Token.builder() .expires(new SimpleDateFormatDateService().iso8601SecondsDateParse("2012-09-29T19:53:45Z")) .id("b267e2e240624b108b1ed5bba6e5882e") .service(Service.builder().type("compute").name("nova") .endpoint(Endpoint.builder() .adminURL("http://10.10.10.10:8774/v2/82d8d2f865484776a1daf1e2245d3317") .id("bb3ce9ccdc5045909882688b90cc3ff0") .publicURL("http://10.10.10.10:8774/v2/82d8d2f865484776a1daf1e2245d3317").build()).build()) .service(Service.builder().type("s3").name("s3") .endpoint(Endpoint.builder() .adminURL("http://10.10.10.10:3333") .id("9646263f31ea4f499732c5e1370ecf5e") .publicURL("http://10.10.10.10:3333").build()).build()) .service(Service.builder().type("image").name("glance") .endpoint(Endpoint.builder() .adminURL("http://10.10.10.10:9292") .id("aa5d0b2574824ba097dc07faacf3be65") .publicURL("http://10.10.10.10:9292").build()).build()) .service(Service.builder().type("volume").name("cinder") .endpoint(Endpoint.builder() .adminURL("http://10.10.10.10:8776/v1/82d8d2f865484776a1daf1e2245d3317") .id("7679065b1405447eb5f1a38a6b99ccc0")
public Access expected() { return Access.builder() .token(Token.builder() .expires(new SimpleDateFormatDateService().iso8601DateParse("2012-01-18T21:35:59.050Z")) .id("Auth_4f173437e4b013bee56d1007") .tenant(Tenant.builder().id("40806637803162").name("user@jclouds.org-default-tenant").build()).build()) .user(User.builder() .id("36980896575174").name("user@jclouds.org") .role(Role.builder().id("00000000004022").serviceId("110").name("Admin").tenantId("40806637803162").build()) .role(Role.builder().id("00000000004004").serviceId("100").name("domainuser").build()) .role(Role.builder().id("00000000004016").serviceId("120").name("netadmin").tenantId("40806637803162").build()).build()) .service(Service.builder().name("Object Storage").type(OBJECT_STORE) .endpoint(Endpoint.builder() .tenantId("40806637803162") .id("1.0") .region("region-a.geo-1").build()).build()) .service(Service.builder().name("Identity").type(IDENTITY) .endpoint(Endpoint.builder() .publicURL("https://csnode.jclouds.org/v2.0/") .id("2.0") .versionId("2.0").build()).build()) .service(Service.builder().name("Image Management").type(IMAGE) .endpoint(Endpoint.builder() .tenantId("40806637803162") .region("az-1.region-a.geo-1")
public Access expected() { return Access.builder() .token(Token.builder() .expires(new SimpleDateFormatDateService().iso8601SecondsDateParse("2012-08-01T13:08:52Z")) .id("946b8ad1ede4422f87ab21dcba27896d") .tenant(Tenant.builder().id("2fdc88ae152948c690b97ba307acae9b").name("admin") .enabled(true).build()).build()) .user(User.builder() .id("b4d134cfe3cf43ad8ba0c2fc5b5d8f91") .name("admin") .role(Role.builder().name("KeystoneServiceAdmin").build()) .role(Role.builder().name("KeystoneAdmin").build()).build()) .service(Service.builder().name("Compute Service").type("compute") .endpoint(Endpoint.builder() .adminURL("http://10.0.1.13:8774/v2/2fdc88ae152948c690b97ba307acae9b") .publicURL("http://10.0.1.13:8774/v2/2fdc88ae152948c690b97ba307acae9b") .region("RegionOne").build()).build()) .service(Service.builder().name("S3 Service").type("s3") .endpoint(Endpoint.builder() .adminURL("http://10.0.1.13:3333") .publicURL("http://10.0.1.13:3333") .region("RegionOne").build()).build()) .service(Service.builder().name("Image Service").type("image") .endpoint(Endpoint.builder() .adminURL("http://10.0.1.13:9292")
public Access expected() { return Access.builder() .token(Token.builder() .expires(new SimpleDateFormatDateService().iso8601DateParse("2012-06-06T20:56:47.000-05:00")) .id("Auth_4f173437e4b013bee56d1007") .tenant(Tenant.builder().id("40806637803162").name("40806637803162").build()).build()) .user(User.builder() .id("54321") .name("joe") .name("identity:user-admin") .description("User Admin Role.").build()).build()) .service(Service.builder().name("cloudDatabases").type("rax:database") .endpoint(Endpoint.builder() .tenantId("40806637803162") .publicURL("https://ord.databases.api.rackspacecloud.com/v1.0/40806637803162") .region("ORD").build()).build()) .service(Service.builder().name("cloudServers").type("compute") .endpoint(Endpoint.builder() .tenantId("40806637803162") .versionInfo("https://servers.api.rackspacecloud.com/v1.0") .versionList("https://servers.api.rackspacecloud.com/").build()).build()) .service(Service.builder().name("cloudFiles").type("object-store") .endpoint(Endpoint.builder() .tenantId("MossoCloudFS_dc1f419c-5059-4c87-a389-3f2e33a77b22") .internalURL("https://snet-storage101.dfw1.clouddrive.com/v1/MossoCloudFS_dc1f419c-5059-4c87-a389-3f2e33a77b22")
public Access expected() { return Access.builder() .token(Token.builder() .expires(new SimpleDateFormatDateService().iso8601SecondsDateParse("2012-09-29T19:53:45Z")) .id("b267e2e240624b108b1ed5bba6e5882e") .service(Service.builder().type("compute").name("nova") .endpoint(Endpoint.builder() .adminURL("http://10.10.10.10:8774/v2/82d8d2f865484776a1daf1e2245d3317") .id("bb3ce9ccdc5045909882688b90cc3ff0") .publicURL("http://10.10.10.10:8774/v2/82d8d2f865484776a1daf1e2245d3317").build()).build()) .service(Service.builder().type("s3").name("s3") .endpoint(Endpoint.builder() .adminURL("http://10.10.10.10:3333") .id("9646263f31ea4f499732c5e1370ecf5e") .publicURL("http://10.10.10.10:3333").build()).build()) .service(Service.builder().type("image").name("glance") .endpoint(Endpoint.builder() .adminURL("http://10.10.10.10:9292") .id("aa5d0b2574824ba097dc07faacf3be65") .publicURL("http://10.10.10.10:9292").build()).build()) .service(Service.builder().type("volume").name("cinder") .endpoint(Endpoint.builder() .adminURL("http://10.10.10.10:8776/v1/82d8d2f865484776a1daf1e2245d3317") .id("7679065b1405447eb5f1a38a6b99ccc0")
public Access expected() { return Access.builder() .token(Token.builder() .expires(new SimpleDateFormatDateService().iso8601SecondsDateParse("2012-08-01T13:08:52Z")) .id("946b8ad1ede4422f87ab21dcba27896d") .tenant(Tenant.builder().id("2fdc88ae152948c690b97ba307acae9b").name("admin").build()).build()) .user(User.builder() .id("b4d134cfe3cf43ad8ba0c2fc5b5d8f91") .name("admin") .role(Role.builder().name("KeystoneServiceAdmin").build()) .role(Role.builder().name("KeystoneAdmin").build()).build()) .service(Service.builder().name("Compute Service").type("compute") .endpoint(Endpoint.builder() .adminURL("http://10.0.1.13:8774/v2/2fdc88ae152948c690b97ba307acae9b") .publicURL("http://10.0.1.13:8774/v2/2fdc88ae152948c690b97ba307acae9b") .region("RegionOne").build()).build()) .service(Service.builder().name("S3 Service").type("s3") .endpoint(Endpoint.builder() .adminURL("http://10.0.1.13:3333") .publicURL("http://10.0.1.13:3333") .region("RegionOne").build()).build()) .service(Service.builder().name("Image Service").type("image") .endpoint(Endpoint.builder() .adminURL("http://10.0.1.13:9292") .publicURL("http://10.0.1.13:9292")
@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(); }
/** * 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(); }
/** * @see Access#delegate() */ public T service(Service service) { this.serviceCatalog.add(service); return self(); }
/** * @see Access#getToken() */ public T token(Token token) { this.token = token; return self(); }