protected void addUserToPropertyMap(GeoServerUser user) { for (Object key : user.getProperties().keySet()) { SortedSet<GeoServerUser> users = helper.propertyMap.get(key); if (users == null) { users = new TreeSet<GeoServerUser>(); helper.propertyMap.put((String) key, users); } users.add(user); } }
SortedSet<GeoServerUser> getUsersHavingPropertyValue(String propname, String propvalue) throws IOException { if (StringUtils.hasLength(propname) == false) return emptyUsers; if (StringUtils.hasLength(propvalue) == false) return emptyUsers; SortedSet<GeoServerUser> result = new TreeSet<GeoServerUser>(); for (GeoServerUser user : getUsersHavingProperty(propname)) { if (propvalue.equals(user.getProperties().getProperty(propname))) result.add(user); } return Collections.unmodifiableSortedSet(result); }
int getUserCountHavingPropertyValue(String propname, String propvalue) throws IOException { int count = 0; if (StringUtils.hasLength(propname) == false) return count; if (StringUtils.hasLength(propvalue) == false) return count; for (GeoServerUser user : getUsersHavingProperty(propname)) { if (propvalue.equals(user.getProperties().getProperty(propname))) count++; } return count; } }
for (Object key : userObject.getProperties().keySet()) { Element property = doc.createElement(E_PROPERTY_UR); user.appendChild(property); property.setAttribute(A_PROPERTY_NAME_UR, key.toString()); property.setTextContent(userObject.getProperties().getProperty(key.toString()));
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; }
user.getProperties().clear(); // set properties for (Object key : userProps.keySet()) { user.getProperties().put(key, userProps.get(key)); SortedSet<GeoServerUser> propUsers = helper.propertyMap.get(key); if (propUsers == null) {
/** * Takes the role set for a user and personalizes the roles (matching user properties and role * parameters) * * @param user * @param roles * @throws IOException */ public SortedSet<GeoServerRole> personalizeRoles( GeoServerUser user, Collection<GeoServerRole> roles) throws IOException { SortedSet<GeoServerRole> set = new TreeSet<GeoServerRole>(); for (GeoServerRole role : roles) { Properties personalizedProps = getRoleService() .personalizeRoleParams( role.getAuthority(), role.getProperties(), user.getUsername(), user.getProperties()); if (personalizedProps == null) { set.add(role); } else { // create personalized role GeoServerRole pRole = getRoleService().createRoleObject(role.getAuthority()); pRole.setUserName(user.getUsername()); for (Object key : personalizedProps.keySet()) pRole.getProperties().put(key, personalizedProps.get(key)); set.add(pRole); } } return set; } }
public void modifyValues(GeoServerUserGroupStore userGroupStore) throws Exception { GeoServerUser disableduser = userGroupStore.getUserByUsername("disableduser"); disableduser.setEnabled(true); disableduser.setPassword("hallo"); disableduser.getProperties().put("lastname", "miller"); userGroupStore.updateUser(disableduser); GeoServerUser user2 = userGroupStore.getUserByUsername("user2"); user2.getProperties().remove("mail"); user2.getProperties().put("tel", "11-22-33"); userGroupStore.updateUser(user2); GeoServerUserGroup disabledgroup = userGroupStore.getGroupByGroupname("disabledgroup"); disabledgroup.setEnabled(true); userGroupStore.updateGroup(disabledgroup); GeoServerUserGroup group1 = userGroupStore.getGroupByGroupname("group1"); userGroupStore.disAssociateUserFromGroup(user2, group1); }
for (Object key : user.getProperties().keySet()) { newUser.getProperties().put(key, user.getProperties().get(key));
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")); }
assertEquals(2, user.getProperties().size()); assertEquals(user.getProperties().getProperty("mail"), "user2@gmx.com"); assertEquals(user.getProperties().getProperty("tel"), "12-34-38"); } else { assertEquals(0, user.getProperties().size()); assertEquals(0, admin.getProperties().size()); assertEquals(0, user1.getProperties().size()); assertEquals(0, disableduser.getProperties().size()); assertEquals(2, user2.getProperties().size()); assertEquals(user2.getProperties().getProperty("mail"), "user2@gmx.com"); assertEquals(user2.getProperties().getProperty("tel"), "12-34-38"); assertEquals(2, user.getProperties().size()); assertEquals(user.getProperties().getProperty("mail"), "user2@gmx.com"); assertEquals(user.getProperties().getProperty("tel"), "12-34-38"); } else { assertEquals(0, user.getProperties().size()); assertEquals(2, user.getProperties().size()); assertEquals(user.getProperties().getProperty("mail"), "user2@gmx.com"); assertEquals(user.getProperties().getProperty("tel"), "12-34-38"); } else { assertEquals(0, user.getProperties().size()); assertEquals(user2.getProperties().getProperty("mail"), "user2@gmx.com"); assertEquals(user2.getProperties().getProperty("tel"), "12-34-38");
user2.getProperties().put("mail", "user2@gmx.com"); user2.getProperties().put("tel", "12-34-38");
@Override public Object getPropertyValue(GeoServerUser item) { if (item.getProperties().size()==0) return Boolean.FALSE; else return Boolean.TRUE; }
@Override public Object getPropertyValue(GeoServerUser item) { if (item.getProperties().size() == 0) return Boolean.FALSE; else return Boolean.TRUE; }
@Override public Object getPropertyValue(GeoServerUser item) { if (item.getProperties().size()==0) return Boolean.FALSE; else return Boolean.TRUE; }
protected GeoServerUser createUser(DirContextOperations dco) { GeoServerUser gsUser = new GeoServerUser(dco.getStringAttribute(userNameAttribute)); for (String attName : populatedAttributes) { try { Attribute att = dco.getAttributes().get(attName.toLowerCase()); if (att != null) { Object value = att.get(); if (value instanceof String) { gsUser.getProperties().put(attName, value); } } } catch (NamingException e) { LOGGER.log( Level.WARNING, "Could not populate value for user attribute " + attName, e); } } return gsUser; }
@Override public void onSubmit() { try { // update the user property listing the group names the user is admin // for if (adminGroupChoice.isEnabled()) { Collection<GeoServerUserGroup> groups = adminGroupChoice.getModelObject(); String[] groupNames = new String[groups.size()]; int i = 0; for (GeoServerUserGroup group : groups) { groupNames[i++] = group.getGroupname(); } GroupAdminProperty.set(user.getProperties(), groupNames); } else { GroupAdminProperty.del(user.getProperties()); } onFormSubmit(user); setReturnPageDirtyAndReturn(true); } catch (Exception e) { handleSubmitError(e); } } }.setEnabled(
@Override public void onSubmit() { try { //update the user property listing the group names the user is admin for if (adminGroupChoice.isEnabled()) { Collection<GeoServerUserGroup> groups = adminGroupChoice.getModelObject(); String[] groupNames = new String[groups.size()]; int i = 0; for (GeoServerUserGroup group : groups) { groupNames[i++] = group.getGroupname(); } GroupAdminProperty.set(user.getProperties(), groupNames); } else { GroupAdminProperty.del(user.getProperties()); } onFormSubmit(user); setReturnPageDirtyAndReturn(true); } catch(Exception e) { handleSubmitError(e); } } }.setEnabled(hasUserGroupStore || hasRoleStore(getSecurityManager().getActiveRoleService().getName())));
@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")); }
@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()); }