/* * Copyright 2016 Red Hat, Inc. and/or its affiliates * and other contributors as indicated by the @author tags. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.keycloak.testsuite.util; import org.keycloak.admin.client.resource.AttackDetectionResource; import org.keycloak.admin.client.resource.AuthenticationManagementResource; import org.keycloak.admin.client.resource.ClientAttributeCertificateResource; import org.keycloak.admin.client.resource.ClientInitialAccessResource; import org.keycloak.admin.client.resource.ClientResource; import org.keycloak.admin.client.resource.ClientTemplateResource; import org.keycloak.admin.client.resource.ClientTemplatesResource; import org.keycloak.admin.client.resource.ClientsResource; import org.keycloak.admin.client.resource.ComponentsResource; import org.keycloak.admin.client.resource.GroupResource; import org.keycloak.admin.client.resource.GroupsResource; import org.keycloak.admin.client.resource.IdentityProviderResource; import org.keycloak.admin.client.resource.IdentityProvidersResource; import org.keycloak.admin.client.resource.ProtocolMappersResource; import org.keycloak.admin.client.resource.RealmResource; import org.keycloak.admin.client.resource.RoleByIdResource; import org.keycloak.admin.client.resource.RoleMappingResource; import org.keycloak.admin.client.resource.RoleResource; import org.keycloak.admin.client.resource.RolesResource; import org.keycloak.admin.client.resource.UserResource; import org.keycloak.admin.client.resource.UsersResource; import javax.ws.rs.core.UriBuilder; import java.net.URI; /** * @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a> */ public class AdminEventPaths { // REALM public static String deleteSessionPath(String userSessionId) { URI uri = UriBuilder.fromUri("").path(RealmResource.class, "deleteSession").build(userSessionId); return uri.toString(); } public static String defaultGroupPath(String groupId) { URI uri = UriBuilder.fromUri("").path(RealmResource.class, "addDefaultGroup").build(groupId); return uri.toString(); } // CLIENT RESOURCE public static String clientResourcePath(String clientDbId) { URI uri = UriBuilder.fromUri("").path(RealmResource.class, "clients").path(ClientsResource.class, "get").build(clientDbId); return uri.toString(); } public static String clientRolesResourcePath(String clientDbId) { URI uri = UriBuilder.fromUri(clientResourcePath(clientDbId)).path(ClientResource.class, "roles").build(); return uri.toString(); } public static String clientRoleResourcePath(String clientDbId, String roleName) { URI uri = UriBuilder.fromUri(clientRolesResourcePath(clientDbId)).path(RolesResource.class, "get").build(roleName); return uri.toString(); } public static String clientRoleResourceCompositesPath(String clientDbId, String roleName) { URI uri = UriBuilder.fromUri(clientRoleResourcePath(clientDbId, roleName)) .path(RoleResource.class, "getRoleComposites").build(); return uri.toString(); } public static String clientProtocolMappersPath(String clientDbId) { URI uri = UriBuilder.fromUri(clientResourcePath(clientDbId)) .path(ClientResource.class, "getProtocolMappers") .build(); return uri.toString(); } public static String clientProtocolMapperPath(String clientDbId, String protocolMapperId) { URI uri = UriBuilder.fromUri(clientProtocolMappersPath(clientDbId)) .path(ProtocolMappersResource.class, "getMapperById") .build(protocolMapperId); return uri.toString(); } public static String clientPushRevocationPath(String clientDbId) { URI uri = UriBuilder.fromUri(clientResourcePath(clientDbId)).path(ClientResource.class, "pushRevocation").build(); return uri.toString(); } public static String clientNodesPath(String clientDbId) { URI uri = UriBuilder.fromUri(clientResourcePath(clientDbId)).path(ClientResource.class, "registerNode").build(); return uri.toString(); } public static String clientNodePath(String clientDbId, String node) { URI uri = UriBuilder.fromUri(clientResourcePath(clientDbId)).path(ClientResource.class, "unregisterNode").build(node); return uri.toString(); } public static String clientTestNodesAvailablePath(String clientDbId) { URI uri = UriBuilder.fromUri(clientResourcePath(clientDbId)).path(ClientResource.class, "testNodesAvailable").build(); return uri.toString(); } public static String clientGenerateSecretPath(String clientDbId) { URI uri = UriBuilder.fromUri(clientResourcePath(clientDbId)).path(ClientResource.class, "generateNewSecret").build(); return uri.toString(); } public static String clientRegenerateRegistrationAccessTokenPath(String clientDbId) { URI uri = UriBuilder.fromUri(clientResourcePath(clientDbId)).path(ClientResource.class, "regenerateRegistrationAccessToken").build(); return uri.toString(); } public static String clientCertificateGenerateSecretPath(String clientDbId, String certificateAttribute) { URI uri = UriBuilder.fromUri(clientResourcePath(clientDbId)) .path(ClientResource.class, "getCertficateResource") .path(ClientAttributeCertificateResource.class, "generate") .build(certificateAttribute); return uri.toString(); } public static String clientScopeMappingsRealmLevelPath(String clientDbId) { URI uri = UriBuilder.fromUri(clientResourcePath(clientDbId)).path(ClientResource.class, "getScopeMappings") .path(RoleMappingResource.class, "realmLevel") .build(); return uri.toString(); } public static String clientScopeMappingsClientLevelPath(String clientDbId, String clientOwningRoleId) { URI uri = UriBuilder.fromUri(clientResourcePath(clientDbId)).path(ClientResource.class, "getScopeMappings") .path(RoleMappingResource.class, "clientLevel") .build(clientOwningRoleId); return uri.toString(); } // CLIENT TEMPLATES public static String clientTemplateResourcePath(String clientTemplateId) { URI uri = UriBuilder.fromUri("").path(RealmResource.class, "clientTemplates").path(ClientTemplatesResource.class, "get").build(clientTemplateId); return uri.toString(); } public static String clientTemplateScopeMappingsRealmLevelPath(String clientTemplateDbId) { URI uri = UriBuilder.fromUri(clientTemplateResourcePath(clientTemplateDbId)).path(ClientTemplateResource.class, "getScopeMappings") .path(RoleMappingResource.class, "realmLevel") .build(); return uri.toString(); } public static String clientTemplateScopeMappingsClientLevelPath(String clientTemplateDbId, String clientOwningRoleId) { URI uri = UriBuilder.fromUri(clientTemplateResourcePath(clientTemplateDbId)).path(ClientTemplateResource.class, "getScopeMappings") .path(RoleMappingResource.class, "clientLevel") .build(clientOwningRoleId); return uri.toString(); } public static String clientTemplateProtocolMappersPath(String clientTemplateDbId) { URI uri = UriBuilder.fromUri(clientTemplateResourcePath(clientTemplateDbId)) .path(ClientTemplateResource.class, "getProtocolMappers") .build(); return uri.toString(); } public static String clientTemplateProtocolMapperPath(String clientTemplateDbId, String protocolMapperId) { URI uri = UriBuilder.fromUri(clientTemplateProtocolMappersPath(clientTemplateDbId)) .path(ProtocolMappersResource.class, "getMapperById") .build(protocolMapperId); return uri.toString(); } // ROLES public static String rolesResourcePath() { URI uri = UriBuilder.fromUri("").path(RealmResource.class, "roles").build(); return uri.toString(); } public static String roleResourcePath(String roleName) { URI uri = UriBuilder.fromUri(rolesResourcePath()).path(RolesResource.class, "get").build(roleName); return uri.toString(); } public static String roleResourceCompositesPath(String roleName) { URI uri = UriBuilder.fromUri(roleResourcePath(roleName)).path(RoleResource.class, "getRoleComposites").build(); return uri.toString(); } public static String rolesByIdResourcePath() { URI uri = UriBuilder.fromUri("").path(RealmResource.class, "rolesById").build(); return uri.toString(); } public static String roleByIdResourcePath(String roleId) { URI uri = UriBuilder.fromUri(rolesByIdResourcePath()).path(RoleByIdResource.class, "getRole").build(roleId); return uri.toString(); } public static String roleByIdResourceCompositesPath(String roleId) { URI uri = UriBuilder.fromUri(rolesByIdResourcePath()).path(RoleByIdResource.class, "getRoleComposites").build(roleId); return uri.toString(); } // USERS public static String userResourcePath(String userId) { URI uri = UriBuilder.fromUri("").path(RealmResource.class, "users").path(UsersResource.class, "get").build(userId); return uri.toString(); } public static String userResetPasswordPath(String userId) { URI uri = UriBuilder.fromUri(userResourcePath(userId)).path(UserResource.class, "resetPassword").build(userId); return uri.toString(); } public static String userRealmRoleMappingsPath(String userId) { URI uri = UriBuilder.fromUri(userResourcePath(userId)) .path(UserResource.class, "roles") .path(RoleMappingResource.class, "realmLevel").build(); return uri.toString(); } public static String userClientRoleMappingsPath(String userId, String clientDbId) { URI uri = UriBuilder.fromUri(userResourcePath(userId)) .path(UserResource.class, "roles") .path(RoleMappingResource.class, "clientLevel").build(clientDbId); return uri.toString(); } public static String userFederatedIdentityLink(String userId, String idpAlias) { URI uri = UriBuilder.fromUri(userResourcePath(userId)) .path(UserResource.class, "addFederatedIdentity") .build(idpAlias); return uri.toString(); } public static String userGroupPath(String userId, String groupId) { URI uri = UriBuilder.fromUri(userResourcePath(userId)) .path(UserResource.class, "joinGroup") .build(groupId); return uri.toString(); } // IDENTITY PROVIDERS public static String identityProvidersPath() { URI uri = UriBuilder.fromUri("").path(RealmResource.class, "identityProviders").build(); return uri.toString(); } public static String identityProviderCreatePath() { URI uri = UriBuilder.fromUri(identityProvidersPath()).path(IdentityProvidersResource.class, "create").build(); return uri.toString(); } public static String identityProviderPath(String idpAlias) { URI uri = UriBuilder.fromUri(identityProvidersPath()).path(IdentityProvidersResource.class, "get").build(idpAlias); return uri.toString(); } public static String identityProviderMapperPath(String idpAlias, String idpMapperId) { URI uri = UriBuilder.fromUri(identityProviderPath(idpAlias)).path(IdentityProviderResource.class, "getMapperById").build(idpMapperId); return uri.toString(); } // COMPONENTS public static String componentsPath() { URI uri = UriBuilder.fromUri("").path(RealmResource.class, "components").build(); return uri.toString(); } public static String componentPath(String componentId) { URI uri = UriBuilder.fromUri(componentsPath()).path(ComponentsResource.class, "component").build(componentId); return uri.toString(); } // CLIENT INITIAL ACCESS public static String clientInitialAccessPath(String clientInitialAccessId) { URI uri = UriBuilder.fromUri("").path(RealmResource.class, "clientInitialAccess") .path(ClientInitialAccessResource.class, "delete") .build(clientInitialAccessId); return uri.toString(); } // GROUPS public static String groupsPath() { URI uri = UriBuilder.fromUri("").path(RealmResource.class, "groups") .build(); return uri.toString(); } public static String groupPath(String groupId) { URI uri = UriBuilder.fromUri(groupsPath()).path(GroupsResource.class, "group") .build(groupId); return uri.toString(); } public static String groupRolesPath(String groupId) { URI uri = UriBuilder.fromUri(groupPath(groupId)) .path(GroupResource.class, "roles") .build(); return uri.toString(); } public static String groupRolesRealmRolesPath(String groupId) { URI uri = UriBuilder.fromUri(groupRolesPath(groupId)) .path(RoleMappingResource.class, "realmLevel") .build(); return uri.toString(); } public static String groupRolesClientRolesPath(String groupId, String clientDbId) { URI uri = UriBuilder.fromUri(groupRolesPath(groupId)) .path(RoleMappingResource.class, "clientLevel") .build(clientDbId); return uri.toString(); } public static String groupSubgroupsPath(String groupId) { URI uri = UriBuilder.fromUri(groupPath(groupId)) .path(GroupResource.class, "subGroup") .build(); return uri.toString(); } // AUTHENTICATION FLOWS public static String authMgmtBasePath() { URI uri = UriBuilder.fromUri("").path(RealmResource.class, "flows") .build(); return uri.toString(); } public static String authFlowsPath() { URI uri = UriBuilder.fromUri(authMgmtBasePath()).path(AuthenticationManagementResource.class, "getFlows") .build(); return uri.toString(); } public static String authFlowPath(String flowId) { URI uri = UriBuilder.fromUri(authMgmtBasePath()).path(AuthenticationManagementResource.class, "getFlow") .build(flowId); return uri.toString(); } public static String authCopyFlowPath(String flowAlias) { URI uri = UriBuilder.fromUri(authMgmtBasePath()).path(AuthenticationManagementResource.class, "copy") .build(flowAlias); return uri.toString(); } public static String authAddExecutionFlowPath(String flowAlias) { URI uri = UriBuilder.fromUri(authMgmtBasePath()).path(AuthenticationManagementResource.class, "addExecutionFlow") .build(flowAlias); return uri.toString(); } public static String authAddExecutionPath(String flowAlias) { return authFlowPath(flowAlias) + "/executions/execution"; } public static String authUpdateExecutionPath(String flowAlias) { URI uri = UriBuilder.fromUri(authMgmtBasePath()).path(AuthenticationManagementResource.class, "updateExecutions") .build(flowAlias); return uri.toString(); } public static String authExecutionPath(String executionId) { URI uri = UriBuilder.fromUri(authMgmtBasePath()).path(AuthenticationManagementResource.class, "removeExecution") .build(executionId); return uri.toString(); } public static String authAddExecutionConfigPath(String executionId) { URI uri = UriBuilder.fromUri(authMgmtBasePath()).path(AuthenticationManagementResource.class, "newExecutionConfig") .build(executionId); return uri.toString(); } public static String authExecutionConfigPath(String configId) { URI uri = UriBuilder.fromUri(authMgmtBasePath()).path(AuthenticationManagementResource.class, "getAuthenticatorConfig") .build(configId); return uri.toString(); } public static String authRaiseExecutionPath(String executionId) { URI uri = UriBuilder.fromUri(authMgmtBasePath()).path(AuthenticationManagementResource.class, "raisePriority") .build(executionId); return uri.toString(); } public static String authLowerExecutionPath(String executionId) { URI uri = UriBuilder.fromUri(authMgmtBasePath()).path(AuthenticationManagementResource.class, "lowerPriority") .build(executionId); return uri.toString(); } public static String authRequiredActionPath(String requiredActionAlias) { URI uri = UriBuilder.fromUri(authMgmtBasePath()).path(AuthenticationManagementResource.class, "getRequiredAction") .build(requiredActionAlias); return uri.toString(); } // ATTACK DETECTION public static String attackDetectionClearBruteForceForUserPath(String username) { URI uri = UriBuilder.fromUri("").path(RealmResource.class, "attackDetection") .path(AttackDetectionResource.class, "clearBruteForceForUser") .build(username); return uri.toString(); } public static String attackDetectionClearAllBruteForcePath() { URI uri = UriBuilder.fromUri("").path(RealmResource.class, "attackDetection") .path(AttackDetectionResource.class, "clearAllBruteForce") .build(); return uri.toString(); } }