@JsonRequest @ApiOperation(value = "Create API Keys", authorizations = @Authorization(value = "master_key")) @Path("/create-api-keys") public ProjectApiKeys createApiKeys(@Named("project") RequestContext context) { return transformKeys(apiKeyService.createApiKeys(context.project)); }
@ApiOperation(value = "Create project") @JsonRequest @Path("/create") public ProjectApiKeys createProject(@ApiParam(value = "lock_key", required = false) String lockKey, @ApiParam("name") String name) { if (!Objects.equals(projectConfig.getLockKey(), lockKey)) { lockKey = lockKey == null ? "" : (lockKey.isEmpty() ? null : lockKey); if (!Objects.equals(projectConfig.getLockKey(), lockKey)) { throw new RakamException("Lock key is invalid", FORBIDDEN); } } String project; try { project = checkProject(name); } catch (IllegalArgumentException e) { throw new RakamException(e.getMessage(), BAD_REQUEST); } if (metastore.getProjects().contains(project)) { throw new RakamException("The project already exists.", BAD_REQUEST); } metastore.createProject(project); return transformKeys(apiKeyService.createApiKeys(project)); }
@Test public void testCreateApiKeys() throws Exception { ApiKeyService.ProjectApiKeys testing = getApiKeyService().createApiKeys(PROJECT_NAME); assertEquals(getApiKeyService().getProjectOfApiKey(testing.readKey(), AccessKeyType.READ_KEY), PROJECT_NAME); assertEquals(getApiKeyService().getProjectOfApiKey(testing.writeKey(), AccessKeyType.WRITE_KEY), PROJECT_NAME); assertEquals(getApiKeyService().getProjectOfApiKey(testing.masterKey(), AccessKeyType.MASTER_KEY), PROJECT_NAME); }
@Test public void testInvalidApiKeys() throws Exception { getApiKeyService().createApiKeys(PROJECT_NAME); try { getApiKeyService().getProjectOfApiKey("invalidKey", AccessKeyType.READ_KEY); fail(); } catch (RakamException e) { } try { getApiKeyService().getProjectOfApiKey("invalidKey", AccessKeyType.WRITE_KEY); fail(); } catch (RakamException e) { } try { getApiKeyService().getProjectOfApiKey("invalidKey", AccessKeyType.MASTER_KEY); fail(); } catch (RakamException e) { } }
@Test public void testRevokeApiKeys() throws Exception { ApiKeyService.ProjectApiKeys apiKeys = getApiKeyService().createApiKeys(PROJECT_NAME); getApiKeyService().revokeApiKeys(PROJECT_NAME, apiKeys.masterKey()); try { getApiKeyService().getProjectOfApiKey(apiKeys.readKey(), AccessKeyType.READ_KEY); fail(); } catch (RakamException e) { } try { getApiKeyService().getProjectOfApiKey(apiKeys.writeKey(), AccessKeyType.WRITE_KEY); fail(); } catch (RakamException e) { } try { getApiKeyService().getProjectOfApiKey(apiKeys.masterKey(), AccessKeyType.MASTER_KEY); fail(); } catch (RakamException e) { } } }