From 2dfd0066657b18e6f4bec9f1cba49ffcb5c48df1 Mon Sep 17 00:00:00 2001 From: Luke Taylor Date: Wed, 26 Nov 2008 11:17:15 +0000 Subject: [PATCH] SEC-1012: Converted Groupsmanager to use List --- .../security/userdetails/GroupManager.java | 4 +- .../jdbc/JdbcUserDetailsManager.java | 8 ++-- .../jdbc/JdbcUserDetailsManagerTests.java | 47 ++++++++++--------- 3 files changed, 30 insertions(+), 29 deletions(-) diff --git a/core/src/main/java/org/springframework/security/userdetails/GroupManager.java b/core/src/main/java/org/springframework/security/userdetails/GroupManager.java index 81b12b9551..ac492ebd0e 100644 --- a/core/src/main/java/org/springframework/security/userdetails/GroupManager.java +++ b/core/src/main/java/org/springframework/security/userdetails/GroupManager.java @@ -22,7 +22,7 @@ public interface GroupManager { /** * Returns the names of all groups that this group manager controls. */ - String[] findAllGroups(); + List findAllGroups(); /** * Locates the users who are members of a group @@ -30,7 +30,7 @@ public interface GroupManager { * @param groupName the group whose members are required * @return the usernames of the group members */ - String[] findUsersInGroup(String groupName); + List findUsersInGroup(String groupName); /** * Creates a new group with the specified list of authorities. diff --git a/core/src/main/java/org/springframework/security/userdetails/jdbc/JdbcUserDetailsManager.java b/core/src/main/java/org/springframework/security/userdetails/jdbc/JdbcUserDetailsManager.java index ff99ddf3fb..06392d4624 100644 --- a/core/src/main/java/org/springframework/security/userdetails/jdbc/JdbcUserDetailsManager.java +++ b/core/src/main/java/org/springframework/security/userdetails/jdbc/JdbcUserDetailsManager.java @@ -229,13 +229,13 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa //~ GroupManager implementation ==================================================================================== - public String[] findAllGroups() { - return (String[]) getJdbcTemplate().queryForList(findAllGroupsSql, String.class).toArray(new String[0]); + public List findAllGroups() { + return getJdbcTemplate().queryForList(findAllGroupsSql, String.class); } - public String[] findUsersInGroup(String groupName) { + public List findUsersInGroup(String 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 authorities) { diff --git a/core/src/test/java/org/springframework/security/userdetails/jdbc/JdbcUserDetailsManagerTests.java b/core/src/test/java/org/springframework/security/userdetails/jdbc/JdbcUserDetailsManagerTests.java index ca16f93278..5f9f6b6571 100644 --- a/core/src/test/java/org/springframework/security/userdetails/jdbc/JdbcUserDetailsManagerTests.java +++ b/core/src/test/java/org/springframework/security/userdetails/jdbc/JdbcUserDetailsManagerTests.java @@ -1,12 +1,28 @@ 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.Authentication; import org.springframework.security.BadCredentialsException; -import org.springframework.security.MockAuthenticationManager; -import org.springframework.security.PopulatedDatabase; import org.springframework.security.GrantedAuthority; import org.springframework.security.GrantedAuthorityImpl; +import org.springframework.security.MockAuthenticationManager; +import org.springframework.security.PopulatedDatabase; import org.springframework.security.TestDataSource; import org.springframework.security.context.SecurityContextHolder; 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.UserDetails; 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} @@ -192,7 +193,7 @@ public class JdbcUserDetailsManagerTests { @Test public void findAllGroupsReturnsExpectedGroupNames() { - List groups = new ArrayList(Arrays.asList(manager.findAllGroups())); + List groups = manager.findAllGroups(); assertEquals(4, groups.size()); Collections.sort(groups); @@ -204,11 +205,11 @@ public class JdbcUserDetailsManagerTests { @Test public void findGroupMembersReturnsCorrectData() { - String[] groupMembers = manager.findUsersInGroup("GROUP_0"); - assertEquals(1, groupMembers.length); - assertEquals("jerry", groupMembers[0]); + List groupMembers = manager.findUsersInGroup("GROUP_0"); + assertEquals(1, groupMembers.size()); + assertEquals("jerry", groupMembers.get(0)); groupMembers = manager.findUsersInGroup("GROUP_1"); - assertEquals(2, groupMembers.length); + assertEquals(2, groupMembers.size()); } @Test @@ -310,7 +311,7 @@ public class JdbcUserDetailsManagerTests { cache.remove(username); } - Map getUserMap() { + Map getUserMap() { return cache; } }