@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(); }
.tenant(Tenant.builder().id("2fdc88ae152948c690b97ba307acae9b").name("admin").build()).build()) .user(User.builder() .id("b4d134cfe3cf43ad8ba0c2fc5b5d8f91") .name("admin") .role(Role.builder().name("admin").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(); }
public void testGetUser() { UserApi api = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint + "/v2.0/users/e021dfd758eb44a89f1c57c8ef3be8e2").build(), HttpResponse.builder().statusCode(200).payload(payloadFromResourceWithContentType("/user_details.json", APPLICATION_JSON)).build()) .getUserApi().get(); User user = api.get("e021dfd758eb44a89f1c57c8ef3be8e2"); assertNotNull(user); assertEquals(user, User.builder().name("nova").id("e021dfd758eb44a89f1c57c8ef3be8e2").email("nova@example.com").enabled(true). tenantId("ab1da202f5774cceb5da2aeff1f0aa87").build()); }
public T fromUser(User in) { return this.id(in.getId()).name(in.getName()).email(in.getEmail()).enabled(in.isEnabled()) .tenantId(in.getTenantId()).roles(in); } }
public void testGetUserOfToken() { TokenApi api = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint + "/v2.0/tokens/sometokenorother").build(), HttpResponse.builder().statusCode(200).payload(payloadFromResourceWithContentType("/token_details.json", APPLICATION_JSON)).build()) .getTokenApi().get(); User user = api.getUserOfToken("sometokenorother"); assertNotNull(user); assertEquals(user, User.builder().id("2b9b606181634ae9ac86fd95a8bc2cde").name("admin") .roles(ImmutableSet.of(Role.builder().id("79cada5c02814b57a52e0eed4dd388cb").name("admin").build())) .build()); }
public T fromUser(User in) { return this.id(in.getId()).name(in.getName()).email(in.getEmail()).enabled(in.isEnabled()) .tenantId(in.getTenantId()).roles(in); } }
@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(); }
public T fromUser(User in) { return this .id(in.getId()) .name(in.getName()) .roles(in); } }
public T fromUser(User in) { return this.id(in.getId()).name(in.getName()).email(in.getEmail()).enabled(in.isEnabled()) .tenantId(in.getTenantId()).roles(in); } }
public T fromUser(User in) { return this.id(in.getId()).name(in.getName()).email(in.getEmail()).enabled(in.isEnabled()) .tenantId(in.getTenantId()).roles(in); } }
public T fromUser(User in) { return this .id(in.getId()) .name(in.getName()) .roles(in); } }
public void testGetUserByName() { UserApi api = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint + "/v2.0/users?name=nova").build(), HttpResponse.builder().statusCode(200).payload(payloadFromResourceWithContentType("/user_details.json", APPLICATION_JSON)).build()) .getUserApi().get(); User user = api.getByName("nova"); assertNotNull(user); assertEquals(user, User.builder().name("nova").id("e021dfd758eb44a89f1c57c8ef3be8e2").build()); }
public void testGetUser() { UserApi api = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint + "/v2.0/users/e021dfd758eb44a89f1c57c8ef3be8e2").build(), HttpResponse.builder().statusCode(200).payload(payloadFromResourceWithContentType("/user_details.json", APPLICATION_JSON)).build()) .getUserApi().get(); User user = api.get("e021dfd758eb44a89f1c57c8ef3be8e2"); assertNotNull(user); assertEquals(user, User.builder().name("nova").id("e021dfd758eb44a89f1c57c8ef3be8e2").build()); }
public void testGetUserByName() { UserApi api = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint + "/v2.0/users?name=nova").build(), HttpResponse.builder().statusCode(200).payload(payloadFromResourceWithContentType("/user_details.json", APPLICATION_JSON)).build()) .getUserApi().get(); User user = api.getByName("nova"); assertNotNull(user); assertEquals(user, User.builder().name("nova").id("e021dfd758eb44a89f1c57c8ef3be8e2").email("nova@example.com").enabled(true). tenantId("ab1da202f5774cceb5da2aeff1f0aa87").build()); }
public void testGetUserOfToken() { TokenApi api = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint + "/v2.0/tokens/sometokenorother").build(), HttpResponse.builder().statusCode(200).payload(payloadFromResourceWithContentType("/token_details.json", APPLICATION_JSON)).build()) .getTokenApi().get(); User user = api.getUserOfToken("sometokenorother"); assertNotNull(user); assertEquals(user, User.builder().id("2b9b606181634ae9ac86fd95a8bc2cde").name("admin") .roles(ImmutableSet.of(Role.builder().id("79cada5c02814b57a52e0eed4dd388cb").name("admin").build())) .build()); }
public T fromUser(User in) { return this .id(in.getId()) .name(in.getName()) .roles(in); } }