Search in sources :

Example 26 with UsersResource

use of org.keycloak.admin.client.resource.UsersResource in project keycloak by keycloak.

the class KcOidcBrokerUiLocalesEnabledTest method loginUser.

@Override
protected void loginUser() {
    driver.navigate().to(getAccountUrl(getConsumerRoot(), bc.consumerRealmName()));
    driver.navigate().to(driver.getCurrentUrl());
    log.debug("Clicking social " + bc.getIDPAlias());
    loginPage.clickSocial(bc.getIDPAlias());
    waitForPage(driver, "sign in to", true);
    Assert.assertThat("Driver should be on the provider realm page right now", driver.getCurrentUrl(), containsString("/auth/realms/" + bc.providerRealmName() + "/"));
    Assert.assertThat(UI_LOCALES_PARAM + "=" + ENGLISH.toLanguageTag() + " should be part of the url", driver.getCurrentUrl(), containsString(UI_LOCALES_PARAM + "=" + ENGLISH.toLanguageTag()));
    loginPage.login(bc.getUserLogin(), bc.getUserPassword());
    waitForPage(driver, "update account information", false);
    updateAccountInformationPage.assertCurrent();
    Assert.assertThat("We must be on correct realm right now", driver.getCurrentUrl(), containsString("/auth/realms/" + bc.consumerRealmName() + "/"));
    log.debug("Updating info on updateAccount page");
    updateAccountInformationPage.updateAccountInformation(bc.getUserLogin(), bc.getUserEmail(), "Firstname", "Lastname");
    UsersResource consumerUsers = adminClient.realm(bc.consumerRealmName()).users();
    int userCount = consumerUsers.count();
    Assert.assertTrue("There must be at least one user", userCount > 0);
    List<UserRepresentation> users = consumerUsers.search("", 0, userCount);
    boolean isUserFound = false;
    for (UserRepresentation user : users) {
        if (user.getUsername().equals(bc.getUserLogin()) && user.getEmail().equals(bc.getUserEmail())) {
            isUserFound = true;
            break;
        }
    }
    Assert.assertTrue("There must be user " + bc.getUserLogin() + " in realm " + bc.consumerRealmName(), isUserFound);
}
Also used : UsersResource(org.keycloak.admin.client.resource.UsersResource) UserRepresentation(org.keycloak.representations.idm.UserRepresentation)

Example 27 with UsersResource

use of org.keycloak.admin.client.resource.UsersResource in project keycloak by keycloak.

the class AbstractServletAuthzAdapterTest method testRequiredRole.

@Test
public void testRequiredRole() throws Exception {
    performTests(() -> {
        login("jdoe", "jdoe");
        navigateToUserPremiumPage();
        assertWasNotDenied();
        RolesResource rolesResource = getClientResource(RESOURCE_SERVER_ID).roles();
        rolesResource.create(new RoleRepresentation("required-role", "", false));
        RolePolicyRepresentation policy = new RolePolicyRepresentation();
        policy.setName("Required Role Policy");
        policy.addRole("user_premium", false);
        policy.addRole(RESOURCE_SERVER_ID + "/required-role", false);
        RolePoliciesResource rolePolicy = getAuthorizationResource().policies().role();
        rolePolicy.create(policy);
        policy = rolePolicy.findByName(policy.getName());
        updatePermissionPolicies("Premium Resource Permission", policy.getName());
        login("jdoe", "jdoe");
        navigateToUserPremiumPage();
        assertWasNotDenied();
        policy.getRoles().clear();
        policy.addRole("user_premium", false);
        policy.addRole(RESOURCE_SERVER_ID + "/required-role", true);
        rolePolicy.findById(policy.getId()).update(policy);
        login("jdoe", "jdoe");
        navigateToUserPremiumPage();
        assertWasDenied();
        UsersResource users = realmsResouce().realm(REALM_NAME).users();
        UserRepresentation user = users.search("jdoe").get(0);
        RoleScopeResource roleScopeResource = users.get(user.getId()).roles().clientLevel(getClientResource(RESOURCE_SERVER_ID).toRepresentation().getId());
        RoleRepresentation requiredRole = rolesResource.get("required-role").toRepresentation();
        roleScopeResource.add(Arrays.asList(requiredRole));
        login("jdoe", "jdoe");
        navigateToUserPremiumPage();
        assertWasNotDenied();
        policy.getRoles().clear();
        policy.addRole("user_premium", false);
        policy.addRole(RESOURCE_SERVER_ID + "/required-role", false);
        rolePolicy.findById(policy.getId()).update(policy);
        login("jdoe", "jdoe");
        navigateToUserPremiumPage();
        assertWasNotDenied();
        roleScopeResource.remove(Arrays.asList(requiredRole));
        login("jdoe", "jdoe");
        navigateToUserPremiumPage();
        assertWasNotDenied();
    });
}
Also used : RoleRepresentation(org.keycloak.representations.idm.RoleRepresentation) RolePolicyRepresentation(org.keycloak.representations.idm.authorization.RolePolicyRepresentation) RoleScopeResource(org.keycloak.admin.client.resource.RoleScopeResource) UsersResource(org.keycloak.admin.client.resource.UsersResource) RolePoliciesResource(org.keycloak.admin.client.resource.RolePoliciesResource) RolesResource(org.keycloak.admin.client.resource.RolesResource) UserRepresentation(org.keycloak.representations.idm.UserRepresentation) Test(org.junit.Test)

Example 28 with UsersResource

use of org.keycloak.admin.client.resource.UsersResource in project keycloak by keycloak.

the class ConsentsTest method testConsents.

@Test
@AuthServerContainerExclude(AuthServer.REMOTE)
public void testConsents() {
    driver.navigate().to(getAccountUrl(consumerRealmName()));
    log.debug("Clicking social " + getIDPAlias());
    accountLoginPage.clickSocial(getIDPAlias());
    if (!driver.getCurrentUrl().contains("/auth/realms/" + providerRealmName() + "/")) {
        log.debug("Not on provider realm page, url: " + driver.getCurrentUrl());
    }
    Assert.assertTrue("Driver should be on the provider realm page right now", driver.getCurrentUrl().contains("/auth/realms/" + providerRealmName() + "/"));
    log.debug("Logging in");
    accountLoginPage.login(getUserLogin(), getUserPassword());
    waitForPage("grant access");
    Assert.assertTrue(consentPage.isCurrent());
    consentPage.confirm();
    Assert.assertTrue("We must be on correct realm right now", driver.getCurrentUrl().contains("/auth/realms/" + consumerRealmName() + "/"));
    UsersResource consumerUsers = adminClient.realm(consumerRealmName()).users();
    Assert.assertTrue("There must be at least one user", consumerUsers.count() > 0);
    List<UserRepresentation> users = consumerUsers.search("", 0, 5);
    UserRepresentation foundUser = null;
    for (UserRepresentation user : users) {
        if (user.getUsername().equals(getUserLogin()) && user.getEmail().equals(getUserEmail())) {
            foundUser = user;
            break;
        }
    }
    Assert.assertNotNull("There must be user " + getUserLogin() + " in realm " + consumerRealmName(), foundUser);
    // get user with the same username from provider realm
    RealmResource providerRealm = adminClient.realm(providerRealmName());
    users = providerRealm.users().search(null, foundUser.getFirstName(), foundUser.getLastName(), null, 0, 1);
    Assert.assertEquals("Same user should be in provider realm", 1, users.size());
    String userId = users.get(0).getId();
    UserResource userResource = providerRealm.users().get(userId);
    // list consents
    List<Map<String, Object>> consents = userResource.getConsents();
    Assert.assertEquals("There should be one consent", 1, consents.size());
    Map<String, Object> consent = consents.get(0);
    Assert.assertEquals("Consent should be given to " + CLIENT_ID, CLIENT_ID, consent.get("clientId"));
    // list sessions. Single client should be in user session
    List<UserSessionRepresentation> sessions = userResource.getUserSessions();
    Assert.assertEquals("There should be one active session", 1, sessions.size());
    Assert.assertEquals("There should be one client in user session", 1, sessions.get(0).getClients().size());
    // revoke consent
    userResource.revokeConsent(CLIENT_ID);
    // list consents
    consents = userResource.getConsents();
    Assert.assertEquals("There should be no consents", 0, consents.size());
    // list sessions
    sessions = userResource.getUserSessions();
    Assert.assertEquals("There should be one active session", 1, sessions.size());
    Assert.assertEquals("There should be no client in user session", 0, sessions.get(0).getClients().size());
}
Also used : UserSessionRepresentation(org.keycloak.representations.idm.UserSessionRepresentation) RealmResource(org.keycloak.admin.client.resource.RealmResource) UsersResource(org.keycloak.admin.client.resource.UsersResource) UserResource(org.keycloak.admin.client.resource.UserResource) Map(java.util.Map) UserRepresentation(org.keycloak.representations.idm.UserRepresentation) AuthServerContainerExclude(org.keycloak.testsuite.arquillian.annotation.AuthServerContainerExclude) Test(org.junit.Test) AbstractKeycloakTest(org.keycloak.testsuite.AbstractKeycloakTest)

Example 29 with UsersResource

use of org.keycloak.admin.client.resource.UsersResource in project keycloak by keycloak.

the class AbstractKeycloakTest method setRequiredActionEnabled.

public void setRequiredActionEnabled(String realm, String userId, String requiredAction, boolean enabled) {
    UsersResource usersResource = adminClient.realm(realm).users();
    UserResource userResource = usersResource.get(userId);
    UserRepresentation userRepresentation = userResource.toRepresentation();
    List<String> requiredActions = userRepresentation.getRequiredActions();
    if (enabled && !requiredActions.contains(requiredAction)) {
        requiredActions.add(requiredAction);
    } else if (!enabled && requiredActions.contains(requiredAction)) {
        requiredActions.remove(requiredAction);
    }
    userResource.update(userRepresentation);
}
Also used : UsersResource(org.keycloak.admin.client.resource.UsersResource) UserResource(org.keycloak.admin.client.resource.UserResource) UserRepresentation(org.keycloak.representations.idm.UserRepresentation)

Example 30 with UsersResource

use of org.keycloak.admin.client.resource.UsersResource in project keycloak by keycloak.

the class GroupTest method defaultMaxResults.

@Test
public void defaultMaxResults() {
    GroupsResource groups = adminClient.realms().realm("test").groups();
    try (Response response = groups.add(GroupBuilder.create().name("test").build())) {
        String groupId = ApiUtil.getCreatedId(response);
        GroupResource group = groups.group(groupId);
        UsersResource users = adminClient.realms().realm("test").users();
        for (int i = 0; i < 110; i++) {
            try (Response r = users.create(UserBuilder.create().username("test-" + i).build())) {
                users.get(ApiUtil.getCreatedId(r)).joinGroup(groupId);
            }
        }
        assertEquals(100, group.members(null, null).size());
        assertEquals(100, group.members().size());
        assertEquals(105, group.members(0, 105).size());
        assertEquals(110, group.members(0, 1000).size());
        assertEquals(110, group.members(-1, -2).size());
    }
}
Also used : Response(javax.ws.rs.core.Response) UsersResource(org.keycloak.admin.client.resource.UsersResource) GroupResource(org.keycloak.admin.client.resource.GroupResource) GroupsResource(org.keycloak.admin.client.resource.GroupsResource) Test(org.junit.Test)

Aggregations

UsersResource (org.keycloak.admin.client.resource.UsersResource)36 UserRepresentation (org.keycloak.representations.idm.UserRepresentation)32 Test (org.junit.Test)18 UserResource (org.keycloak.admin.client.resource.UserResource)10 RealmResource (org.keycloak.admin.client.resource.RealmResource)9 Response (javax.ws.rs.core.Response)7 ClientsResource (org.keycloak.admin.client.resource.ClientsResource)7 Map (java.util.Map)6 List (java.util.List)5 Matchers.containsString (org.hamcrest.Matchers.containsString)5 Before (org.junit.Before)5 UserSessionRepresentation (org.keycloak.representations.idm.UserSessionRepresentation)5 IdentityProviderResource (org.keycloak.admin.client.resource.IdentityProviderResource)4 ClientRepresentation (org.keycloak.representations.idm.ClientRepresentation)4 HashMap (java.util.HashMap)3 Collectors (java.util.stream.Collectors)3 Matchers.hasSize (org.hamcrest.Matchers.hasSize)3 Assert.assertThat (org.junit.Assert.assertThat)3 RolesResource (org.keycloak.admin.client.resource.RolesResource)3 AbstractKeycloakTest (org.keycloak.testsuite.AbstractKeycloakTest)3