/* (c) 2015 Open Source Geospatial Foundation - all rights reserved * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.geofence.internal; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.Arrays; import java.util.Set; import org.geoserver.data.test.SystemTestData; import org.geoserver.security.GeoServerRoleService; import org.geoserver.security.GeoServerRoleStore; import org.geoserver.security.GeoServerSecurityManager; import org.geoserver.security.GeoServerUserGroupService; import org.geoserver.security.GeoServerUserGroupStore; import org.geoserver.security.impl.GeoServerRole; import org.geoserver.security.impl.GeoServerUser; import org.geoserver.security.impl.GeoServerUserGroup; import org.geoserver.test.GeoServerSystemTestSupport; import org.junit.Test; /*** * * @author Niels Charlier * */ public class InternalUserResolverTest extends GeoServerSystemTestSupport { @Override protected void onSetUp(SystemTestData testData) throws Exception { addUser("pipo", "clown", null, Arrays.asList("CIRCUS", "KLINIEK", "ZEVER")); addUser("jantje", "jantje", null, Arrays.asList("MOPJES", "ZEVER")); GeoServerSecurityManager secMgr = getSecurityManager(); GeoServerUserGroupService userGroupService = secMgr.loadUserGroupService("default"); GeoServerRoleService roleService = secMgr.loadRoleService("default"); GeoServerUserGroupStore userGroupStore = userGroupService.createStore(); GeoServerRoleStore rolesStore = roleService.createStore(); GeoServerUser roleUserTest = userGroupService.createUserObject("role_user_test", "role_user_test", true); userGroupStore.addUser(roleUserTest); GeoServerRole roleTest = rolesStore.createRoleObject("ROLE_TEST"); rolesStore.addRole(roleTest); rolesStore.associateRoleToUser(roleTest, "role_user_test"); GeoServerRole roleTest2 = rolesStore.createRoleObject("ROLE_TEST_2"); rolesStore.addRole(roleTest2); GeoServerUserGroup roleGroup = userGroupService.createGroupObject("ROLE_GROUP", true); userGroupStore.addGroup(roleGroup); userGroupStore.associateUserToGroup(roleUserTest, roleGroup); rolesStore.associateRoleToGroup(roleTest2, "ROLE_GROUP"); userGroupStore.store(); rolesStore.store(); } @Test public void testInternalUserResolver() { InternalUserResolver resolver = new InternalUserResolver(getSecurityManager()); assertTrue(resolver.existsUser("pipo")); assertTrue(resolver.existsUser("jantje")); assertTrue(resolver.existsUser("role_user_test")); assertTrue(resolver.existsRole("ZEVER")); assertTrue(resolver.existsRole("CIRCUS")); assertTrue(resolver.existsRole("MOPJES")); assertTrue(resolver.existsRole("KLINIEK")); assertTrue(resolver.existsRole("ROLE_TEST")); Set<String> roles = resolver.getRoles("pipo"); assertEquals(3, roles.size()); assertTrue(roles.contains("CIRCUS")); assertTrue(roles.contains("ZEVER")); assertTrue(roles.contains("KLINIEK")); roles = resolver.getRoles("jantje"); assertEquals(2, roles.size()); assertTrue(roles.contains("ZEVER")); assertTrue(roles.contains("MOPJES")); roles = resolver.getRoles("role_user_test"); assertEquals(2, roles.size()); assertTrue(roles.contains("ROLE_TEST")); assertTrue(roles.contains("ROLE_TEST_2")); } }