SEC-1012: Converted Groupsmanager to use List<String>

This commit is contained in:
Luke Taylor 2008-11-26 11:17:15 +00:00
parent 1f78974073
commit 2dfd006665
3 changed files with 30 additions and 29 deletions

View File

@ -22,7 +22,7 @@ public interface GroupManager {
/** /**
* Returns the names of all groups that this group manager controls. * Returns the names of all groups that this group manager controls.
*/ */
String[] findAllGroups(); List<String> findAllGroups();
/** /**
* Locates the users who are members of a group * Locates the users who are members of a group
@ -30,7 +30,7 @@ public interface GroupManager {
* @param groupName the group whose members are required * @param groupName the group whose members are required
* @return the usernames of the group members * @return the usernames of the group members
*/ */
String[] findUsersInGroup(String groupName); List<String> findUsersInGroup(String groupName);
/** /**
* Creates a new group with the specified list of authorities. * Creates a new group with the specified list of authorities.

View File

@ -229,13 +229,13 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa
//~ GroupManager implementation ==================================================================================== //~ GroupManager implementation ====================================================================================
public String[] findAllGroups() { public List<String> findAllGroups() {
return (String[]) getJdbcTemplate().queryForList(findAllGroupsSql, String.class).toArray(new String[0]); return getJdbcTemplate().queryForList(findAllGroupsSql, String.class);
} }
public String[] findUsersInGroup(String groupName) { public List<String> findUsersInGroup(String groupName) {
Assert.hasText(groupName); Assert.hasText(groupName);
return (String[]) getJdbcTemplate().queryForList(findUsersInGroupSql, new String[] {groupName}, String.class).toArray(new String[0]); return getJdbcTemplate().queryForList(findUsersInGroupSql, new String[] {groupName}, String.class);
} }
public void createGroup(final String groupName, final List<GrantedAuthority> authorities) { public void createGroup(final String groupName, final List<GrantedAuthority> authorities) {

View File

@ -1,12 +1,28 @@
package org.springframework.security.userdetails.jdbc; package org.springframework.security.userdetails.jdbc;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.security.AccessDeniedException; import org.springframework.security.AccessDeniedException;
import org.springframework.security.Authentication; import org.springframework.security.Authentication;
import org.springframework.security.BadCredentialsException; import org.springframework.security.BadCredentialsException;
import org.springframework.security.MockAuthenticationManager;
import org.springframework.security.PopulatedDatabase;
import org.springframework.security.GrantedAuthority; import org.springframework.security.GrantedAuthority;
import org.springframework.security.GrantedAuthorityImpl; import org.springframework.security.GrantedAuthorityImpl;
import org.springframework.security.MockAuthenticationManager;
import org.springframework.security.PopulatedDatabase;
import org.springframework.security.TestDataSource; import org.springframework.security.TestDataSource;
import org.springframework.security.context.SecurityContextHolder; import org.springframework.security.context.SecurityContextHolder;
import org.springframework.security.providers.UsernamePasswordAuthenticationToken; import org.springframework.security.providers.UsernamePasswordAuthenticationToken;
@ -14,21 +30,6 @@ import org.springframework.security.providers.dao.UserCache;
import org.springframework.security.userdetails.User; import org.springframework.security.userdetails.User;
import org.springframework.security.userdetails.UserDetails; import org.springframework.security.userdetails.UserDetails;
import org.springframework.security.util.AuthorityUtils; import org.springframework.security.util.AuthorityUtils;
import org.springframework.jdbc.core.JdbcTemplate;
import org.junit.After;
import org.junit.AfterClass;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import java.util.Map;
import java.util.HashMap;
import java.util.List;
import java.util.Collections;
import java.util.ArrayList;
import java.util.Arrays;
/** /**
* Tests for {@link JdbcUserDetailsManager} * Tests for {@link JdbcUserDetailsManager}
@ -192,7 +193,7 @@ public class JdbcUserDetailsManagerTests {
@Test @Test
public void findAllGroupsReturnsExpectedGroupNames() { public void findAllGroupsReturnsExpectedGroupNames() {
List<String> groups = new ArrayList<String>(Arrays.asList(manager.findAllGroups())); List<String> groups = manager.findAllGroups();
assertEquals(4, groups.size()); assertEquals(4, groups.size());
Collections.sort(groups); Collections.sort(groups);
@ -204,11 +205,11 @@ public class JdbcUserDetailsManagerTests {
@Test @Test
public void findGroupMembersReturnsCorrectData() { public void findGroupMembersReturnsCorrectData() {
String[] groupMembers = manager.findUsersInGroup("GROUP_0"); List<String> groupMembers = manager.findUsersInGroup("GROUP_0");
assertEquals(1, groupMembers.length); assertEquals(1, groupMembers.size());
assertEquals("jerry", groupMembers[0]); assertEquals("jerry", groupMembers.get(0));
groupMembers = manager.findUsersInGroup("GROUP_1"); groupMembers = manager.findUsersInGroup("GROUP_1");
assertEquals(2, groupMembers.length); assertEquals(2, groupMembers.size());
} }
@Test @Test
@ -310,7 +311,7 @@ public class JdbcUserDetailsManagerTests {
cache.remove(username); cache.remove(username);
} }
Map getUserMap() { Map<String,UserDetails> getUserMap() {
return cache; return cache;
} }
} }