public GeoServerUser getUserByUsername(String username) throws IOException { return service.getUserByUsername(username); }
@Override public GeoServerUser getUserByUsername(String username) throws IOException { return filterUser(delegate.getUserByUsername(username)); }
protected void checkExistingUserName(String userName) throws IOException { checkUserName(userName); if (service.getUserByUsername(userName) == null) throw createSecurityException(USER_NOT_FOUND_$1, userName); }
protected void checkNotExistingUserName(String userName) throws IOException { checkUserName(userName); if (service.getUserByUsername(userName) != null) throw createSecurityException(USER_ALREADY_EXISTS_$1, userName); }
/** * READ_LOCK * * @see org.geoserver.security.GeoServerUserGroupService#getUserByUsername(java.lang.String) */ public GeoServerUser getUserByUsername(String username) throws IOException { readLock(); try { return getService().getUserByUsername(username); } finally { readUnLock(); } }
/** * Checks if a user name is valid if this validator was constructed with {@link * GeoServerUserGroupService} objects, a cross check is done * * @param userName * @throws RoleServiceException */ protected void checkValidUserName(String userName) throws IOException { if (isNotEmpty(userName) == false) throw createSecurityException(USERNAME_REQUIRED); if (services.length == 0) return; for (GeoServerUserGroupService service : services) { if (service.getUserByUsername(userName) != null) return; } throw createSecurityException(USERNAME_NOT_FOUND_$1, userName); }
@Override protected String getPreAuthenticatedPrincipal(HttpServletRequest request) { // avoid retrieving the user name more than once if (request.getAttribute(UserNameAlreadyRetrieved) != null) return (String) request.getAttribute(UserName); String principal = getPreAuthenticatedPrincipalName(request); if (principal != null && principal.trim().length() == 0) principal = null; try { if (principal != null && PreAuthenticatedUserNameRoleSource.UserGroupService.equals( getRoleSource())) { GeoServerUserGroupService service = getSecurityManager().loadUserGroupService(getUserGroupServiceName()); GeoServerUser u = service.getUserByUsername(principal); if (u != null && u.isEnabled() == false) { principal = null; handleDisabledUser(u, request); } } } catch (IOException ex) { throw new RuntimeException(ex); } request.setAttribute(UserNameAlreadyRetrieved, Boolean.TRUE); if (principal != null) request.setAttribute(UserName, principal); return principal; }
List<String> calculateAdminGroups(UserDetails userDetails) throws IOException { if (userDetails instanceof GeoServerUser) { Properties props = ((GeoServerUser) userDetails).getProperties(); if (GroupAdminProperty.has(props)) { return Arrays.asList(GroupAdminProperty.get(props)); } } // fall back on including every group the user is part of List<String> groupNames = new ArrayList<String>(); for (GeoServerUserGroupService ugService : loadUserGroupServices()) { GeoServerUser user = ugService.getUserByUsername(userDetails.getUsername()); if (user != null) { for (GeoServerUserGroup group : ugService.getGroupsForUser(user)) { groupNames.add(group.getGroupname()); } } } return groupNames; }
protected void checkValuesModified(GeoServerUserGroupService userGroupService) throws IOException { GeoServerUser disableduser = userGroupService.getUserByUsername("disableduser"); assertTrue(disableduser.isEnabled()); GeoServerMultiplexingPasswordEncoder encoder = getEncoder(userGroupService); assertTrue(encoder.isPasswordValid(disableduser.getPassword(), "hallo", null)); assertEquals(1, disableduser.getProperties().size()); assertEquals("miller", disableduser.getProperties().getProperty("lastname")); GeoServerUser user2 = userGroupService.getUserByUsername("user2"); assertEquals(1, user2.getProperties().size()); assertEquals("11-22-33", user2.getProperties().getProperty("tel")); GeoServerUserGroup disabledgroup = userGroupService.getGroupByGroupname("disabledgroup"); assertTrue(disabledgroup.isEnabled()); GeoServerUserGroup group1 = userGroupService.getGroupByGroupname("group1"); GeoServerUser user1 = userGroupService.getUserByUsername("user1"); assertEquals(1, userGroupService.getUsersForGroup(group1).size()); assertTrue(userGroupService.getUsersForGroup(group1).contains(user1)); assertEquals(0, userGroupService.getGroupsForUser(user2).size()); assertEquals(0, userGroupService.getUsersHavingProperty("mail").size()); assertEquals(0, userGroupService.getUsersHavingPropertyValue("tel", "12-34-38").size()); assertEquals(1, userGroupService.getUsersHavingPropertyValue("tel", "11-22-33").size()); user2 = userGroupService.getUsersHavingPropertyValue("tel", "11-22-33").first(); assertEquals("11-22-33", user2.getProperties().getProperty("tel")); }
protected void checkValuesRemoved(GeoServerUserGroupService userGroupService) throws IOException { GeoServerUser admin = GeoServerUser.createDefaultAdmin(); GeoServerUser user1 = userGroupService.getUserByUsername("user1"); GeoServerUser disableduser = userGroupService.getUserByUsername("disableduser"); GeoServerUser groupAdminUser = userGroupService.getUserByUsername("groupAdminUser"); assertEquals(4, userGroupService.getUsers().size()); assertEquals(4, userGroupService.getUserCount()); assertTrue(userGroupService.getUsers().contains(admin)); assertTrue(userGroupService.getUsers().contains(user1)); assertTrue(userGroupService.getUsers().contains(disableduser)); assertTrue(userGroupService.getUsers().contains(groupAdminUser)); GeoServerUserGroup admins = userGroupService.getGroupByGroupname("admins"); GeoServerUserGroup group1 = userGroupService.getGroupByGroupname("group1"); assertEquals(3, userGroupService.getUserGroups().size()); assertEquals(3, userGroupService.getGroupCount()); assertTrue(userGroupService.getUserGroups().contains(admins)); assertTrue(userGroupService.getUserGroups().contains(group1)); assertEquals(0, userGroupService.getGroupsForUser(disableduser).size()); assertEquals(1, userGroupService.getUsersForGroup(group1).size()); assertTrue(userGroupService.getUsersForGroup(group1).contains(user1)); assertEquals(0, userGroupService.getUsersHavingProperty("mail").size()); assertEquals(0, userGroupService.getUsersHavingPropertyValue("tel", "11-22-33").size()); }
if (userGroupService.getUserByUsername(GeoServerUser.ADMIN_USERNAME) == null) { userGroupStore.addUser(GeoServerUser.createDefaultAdmin()); GeoServerRole localAdminRole =
assertEquals(5, userGroupService.getUserCount()); GeoServerUser admin = userGroupService.getUserByUsername(GeoServerUser.ADMIN_USERNAME); GeoServerUser user1 = userGroupService.getUserByUsername("user1"); GeoServerUser user2 = userGroupService.getUserByUsername("user2"); GeoServerUser disableduser = userGroupService.getUserByUsername("disableduser"); GeoServerUser groupAdminUser = userGroupService.getUserByUsername("groupAdminUser"); assertNull(userGroupService.getUserByUsername("xxx"));
protected GeoServerUser getUser(GeoServerUserGroupService service, String userName) throws IOException { GeoServerUser user = service.getUserByUsername(userName); if (user == null) { throw new IllegalArgumentException("Provided username does not exist: " + userName); } return user; }
@Test public void testGroupsForUser() throws Exception { SortedSet<GeoServerUserGroup> groups = service.getGroupsForUser(service.getUserByUsername("other")); assertNotNull(groups); assertEquals(1, groups.size()); }
@Test public void testUserByName() throws Exception { GeoServerUser user = service.getUserByUsername("other"); assertNotNull(user); assertEquals("other", user.getProperties().get("givenName")); assertEquals("dude", user.getProperties().get("sn")); assertEquals("2", user.getProperties().get("telephoneNumber")); assertNull(service.getUserByUsername("dummy")); }
public void resetUserPassword() throws IOException, PasswordPolicyException { GeoServerUserGroupService service = getSecurityManager().loadUserGroupService(XMLUserGroupService.DEFAULT_NAME); GeoServerUser user = service.getUserByUsername(USERNAME); user.setPassword(USERPW); GeoServerUserGroupStore store = service.createStore(); store.updateUser(user); store.store(); service.load(); }
@Test public void testDefault() throws Exception { GeoServerUserGroupService service = getSecurityManager().loadUserGroupService(XMLUserGroupService.DEFAULT_NAME); assertEquals(1, service.getUsers().size()); assertEquals(1, service.getUserCount()); assertEquals(0, service.getUserGroups().size()); assertEquals(0, service.getGroupCount()); GeoServerUser admin = service.getUserByUsername(GeoServerUser.ADMIN_USERNAME); assertNotNull(admin); assertEquals(GeoServerUser.AdminEnabled, admin.isEnabled()); GeoServerMultiplexingPasswordEncoder enc = getEncoder(service); assertTrue( enc.isPasswordValid(admin.getPassword(), GeoServerUser.DEFAULT_ADMIN_PASSWD, null)); assertEquals(admin.getProperties().size(), 0); assertEquals(0, service.getGroupsForUser(admin).size()); }
@Test public void testCreateNewUser() throws Exception { setAuth(); GeoServerUserGroupService ugService = getSecurityManager().loadUserGroupService(ugStore.getName()); GeoServerUserGroupStore ugStore = ugService.createStore(); GeoServerUser bill = ugStore.createUserObject("bill", "foobar", true); ugStore.addUser(bill); ugStore.store(); assertNotNull(ugService.getUserByUsername("bill")); }
@Override protected void onSetUp(SystemTestData testData) throws Exception { super.onSetUp(testData); // Create the test restuser if needed GeoServerUserGroupService service = getSecurityManager().loadUserGroupService(XMLUserGroupService.DEFAULT_NAME); if (service.getUserByUsername(USERNAME) == null) { GeoServerUser user = service.createUserObject(USERNAME, USERPW, true); GeoServerUserGroupStore store = service.createStore(); store.addUser(user); store.store(); service.load(); } xp = XMLUnit.newXpathEngine(); }
@Test public void testEmptyPassword() throws Exception { // all is empty checkEmpty(service); checkEmpty(store); GeoServerUser user = store.createUserObject("userNoPasswd", null, true); store.addUser(user); store.store(); assertEquals(1, service.getUserCount()); user = service.getUserByUsername("userNoPasswd"); assertNull(user.getPassword()); user = (GeoServerUser) service.loadUserByUsername("userNoPasswd"); assertNull(user.getPassword()); }