Java5 stuff

This commit is contained in:
Luke Taylor 2008-12-09 18:02:58 +00:00
parent 046456c142
commit 3da68a7a82
18 changed files with 76 additions and 110 deletions

View File

@ -57,7 +57,7 @@ public class MapBasedAttributes2GrantedAuthoritiesMapper implements Attributes2G
/** /**
* @param attributes2grantedAuthoritiesMap The attributes2grantedAuthoritiesMap to set. * @param attributes2grantedAuthoritiesMap The attributes2grantedAuthoritiesMap to set.
*/ */
public void setAttributes2grantedAuthoritiesMap(final Map attributes2grantedAuthoritiesMap) { public void setAttributes2grantedAuthoritiesMap(final Map<?,?> attributes2grantedAuthoritiesMap) {
Assert.notEmpty(attributes2grantedAuthoritiesMap,"A non-empty attributes2grantedAuthoritiesMap must be supplied"); Assert.notEmpty(attributes2grantedAuthoritiesMap,"A non-empty attributes2grantedAuthoritiesMap must be supplied");
this.attributes2grantedAuthoritiesMap = preProcessMap(attributes2grantedAuthoritiesMap); this.attributes2grantedAuthoritiesMap = preProcessMap(attributes2grantedAuthoritiesMap);

View File

@ -4,7 +4,6 @@ import java.io.FilterInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.StringReader; import java.io.StringReader;
import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
@ -114,11 +113,11 @@ public abstract class XmlMappableAttributesRetriever implements MappableAttribut
} }
/** /**
* @param doc * @param doc The Document from which to read the list of roles
* The Document from which to read the list of roles
* @return String[] the list of roles. * @return String[] the list of roles.
* @throws JaxenException * @throws JaxenException
*/ */
@SuppressWarnings("unchecked")
private Set<String> getMappableAttributes(Document doc) { private Set<String> getMappableAttributes(Document doc) {
try { try {
DOMXPath xpath = new DOMXPath(xpathExpression); DOMXPath xpath = new DOMXPath(xpathExpression);

View File

@ -15,20 +15,20 @@ import org.springframework.security.ui.rememberme.RememberMeServices;
import org.springframework.util.Assert; import org.springframework.util.Assert;
/** /**
* *
* @author Luke Taylor * @author Luke Taylor
* @version $Id$ * @version $Id$
* @since 2.0 * @since 2.0
*/ */
public class RememberMeServicesInjectionBeanPostProcessor implements BeanPostProcessor, BeanFactoryAware { public class RememberMeServicesInjectionBeanPostProcessor implements BeanPostProcessor, BeanFactoryAware {
private Log logger = LogFactory.getLog(getClass()); private Log logger = LogFactory.getLog(getClass());
private ListableBeanFactory beanFactory; private ListableBeanFactory beanFactory;
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
if (bean instanceof AbstractProcessingFilter) { if (bean instanceof AbstractProcessingFilter) {
AbstractProcessingFilter pf = (AbstractProcessingFilter) bean; AbstractProcessingFilter pf = (AbstractProcessingFilter) bean;
if (pf.getRememberMeServices() == null) { if (pf.getRememberMeServices() == null) {
logger.info("Setting RememberMeServices on bean " + beanName); logger.info("Setting RememberMeServices on bean " + beanName);
pf.setRememberMeServices(getRememberMeServices()); pf.setRememberMeServices(getRememberMeServices());
@ -38,25 +38,25 @@ public class RememberMeServicesInjectionBeanPostProcessor implements BeanPostPro
// Most of the time a user won't present such a parameter with their BASIC authentication request. // Most of the time a user won't present such a parameter with their BASIC authentication request.
// In the future we might support setting the AbstractRememberMeServices.alwaysRemember = true, but I am reluctant to // In the future we might support setting the AbstractRememberMeServices.alwaysRemember = true, but I am reluctant to
// do so because it seems likely to lead to lower security for 99.99% of users if they set the property to true. // do so because it seems likely to lead to lower security for 99.99% of users if they set the property to true.
BasicProcessingFilter bf = (BasicProcessingFilter) bean; BasicProcessingFilter bf = (BasicProcessingFilter) bean;
logger.info("Setting RememberMeServices on bean " + beanName); logger.info("Setting RememberMeServices on bean " + beanName);
bf.setRememberMeServices(getRememberMeServices()); bf.setRememberMeServices(getRememberMeServices());
} }
return bean; return bean;
} }
private RememberMeServices getRememberMeServices() { private RememberMeServices getRememberMeServices() {
Map beans = beanFactory.getBeansOfType(RememberMeServices.class); Map<?,?> beans = beanFactory.getBeansOfType(RememberMeServices.class);
Assert.isTrue(beans.size() > 0, "No RememberMeServices configured"); Assert.isTrue(beans.size() > 0, "No RememberMeServices configured");
Assert.isTrue(beans.size() == 1, "Use of '<remember-me />' requires a single instance of RememberMeServices " + Assert.isTrue(beans.size() == 1, "Use of '<remember-me />' requires a single instance of RememberMeServices " +
"in the application context, but more than one was found."); "in the application context, but more than one was found.");
return (RememberMeServices) beans.values().toArray()[0]; return (RememberMeServices) beans.values().toArray()[0];
} }
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
return bean; return bean;
} }

View File

@ -56,6 +56,7 @@ class SessionRegistryInjectionBeanPostProcessor implements BeanPostProcessor, Be
return bean; return bean;
} }
@SuppressWarnings("unchecked")
private SessionRegistry getSessionRegistry() { private SessionRegistry getSessionRegistry() {
if (sessionRegistry != null) { if (sessionRegistry != null) {
return sessionRegistry; return sessionRegistry;

View File

@ -98,7 +98,7 @@ public class UserDetailsServiceInjectionBeanPostProcessor implements BeanPostPro
* if available so should not be used for beans which need to separate the two. * if available so should not be used for beans which need to separate the two.
*/ */
UserDetailsService getUserDetailsService() { UserDetailsService getUserDetailsService() {
Map beans = beanFactory.getBeansOfType(CachingUserDetailsService.class); Map<?,?> beans = beanFactory.getBeansOfType(CachingUserDetailsService.class);
if (beans.size() == 0) { if (beans.size() == 0) {
beans = beanFactory.getBeansOfType(UserDetailsService.class); beans = beanFactory.getBeansOfType(UserDetailsService.class);

View File

@ -25,20 +25,21 @@ import java.util.Iterator;
public class UserServiceBeanDefinitionParser extends AbstractUserDetailsServiceBeanDefinitionParser { public class UserServiceBeanDefinitionParser extends AbstractUserDetailsServiceBeanDefinitionParser {
static final String ATT_PASSWORD = "password"; static final String ATT_PASSWORD = "password";
static final String ATT_NAME = "name"; static final String ATT_NAME = "name";
static final String ELT_USER = "user"; static final String ELT_USER = "user";
static final String ATT_AUTHORITIES = "authorities"; static final String ATT_AUTHORITIES = "authorities";
static final String ATT_PROPERTIES = "properties"; static final String ATT_PROPERTIES = "properties";
static final String ATT_DISABLED = "disabled"; static final String ATT_DISABLED = "disabled";
static final String ATT_LOCKED = "locked"; static final String ATT_LOCKED = "locked";
protected String getBeanClassName(Element element) { protected String getBeanClassName(Element element) {
return "org.springframework.security.userdetails.memory.InMemoryDaoImpl"; return "org.springframework.security.userdetails.memory.InMemoryDaoImpl";
} }
@SuppressWarnings("unchecked")
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
String userProperties = element.getAttribute(ATT_PROPERTIES); String userProperties = element.getAttribute(ATT_PROPERTIES);
List userElts = DomUtils.getChildElementsByTagName(element, ELT_USER); List<Element> userElts = DomUtils.getChildElementsByTagName(element, ELT_USER);
if (StringUtils.hasText(userProperties)) { if (StringUtils.hasText(userProperties)) {
@ -57,7 +58,7 @@ public class UserServiceBeanDefinitionParser extends AbstractUserDetailsServiceB
throw new BeanDefinitionStoreException("You must supply user definitions, either with <" + ELT_USER + "> child elements or a " + throw new BeanDefinitionStoreException("You must supply user definitions, either with <" + ELT_USER + "> child elements or a " +
"properties file (using the '" + ATT_PROPERTIES + "' attribute)" ); "properties file (using the '" + ATT_PROPERTIES + "' attribute)" );
} }
UserMap users = new UserMap(); UserMap users = new UserMap();
for (Iterator i = userElts.iterator(); i.hasNext();) { for (Iterator i = userElts.iterator(); i.hasNext();) {
@ -68,7 +69,7 @@ public class UserServiceBeanDefinitionParser extends AbstractUserDetailsServiceB
boolean disabled = "true".equals(userElt.getAttribute(ATT_DISABLED)); boolean disabled = "true".equals(userElt.getAttribute(ATT_DISABLED));
users.addUser(new User(userName, password, !disabled, true, true, !locked, users.addUser(new User(userName, password, !disabled, true, true, !locked,
AuthorityUtils.commaSeparatedStringToAuthorityArray(userElt.getAttribute(ATT_AUTHORITIES)))); AuthorityUtils.commaSeparatedStringToAuthorityList(userElt.getAttribute(ATT_AUTHORITIES))));
} }
builder.addPropertyValue("userMap", users); builder.addPropertyValue("userMap", users);

View File

@ -29,10 +29,10 @@ public class X509BeanDefinitionParser implements BeanDefinitionParser {
public BeanDefinition parse(Element element, ParserContext parserContext) { public BeanDefinition parse(Element element, ParserContext parserContext) {
BeanDefinitionBuilder filterBuilder = BeanDefinitionBuilder.rootBeanDefinition(X509PreAuthenticatedProcessingFilter.class); BeanDefinitionBuilder filterBuilder = BeanDefinitionBuilder.rootBeanDefinition(X509PreAuthenticatedProcessingFilter.class);
RootBeanDefinition entryPoint = new RootBeanDefinition(PreAuthenticatedProcessingFilterEntryPoint.class); RootBeanDefinition entryPoint = new RootBeanDefinition(PreAuthenticatedProcessingFilterEntryPoint.class);
Object source = parserContext.extractSource(element); Object source = parserContext.extractSource(element);
filterBuilder.setSource(source); filterBuilder.getRawBeanDefinition().setSource(source);
entryPoint.setSource(source); entryPoint.setSource(source);
String regex = element.getAttribute(ATT_REGEX); String regex = element.getAttribute(ATT_REGEX);
@ -57,13 +57,13 @@ public class X509BeanDefinitionParser implements BeanDefinitionParser {
provider.getPropertyValues().addPropertyValue("preAuthenticatedUserDetailsService", preAuthUserService); provider.getPropertyValues().addPropertyValue("preAuthenticatedUserDetailsService", preAuthUserService);
} }
parserContext.getRegistry().registerBeanDefinition(BeanIds.PRE_AUTH_ENTRY_POINT, entryPoint); parserContext.getRegistry().registerBeanDefinition(BeanIds.PRE_AUTH_ENTRY_POINT, entryPoint);
filterBuilder.addPropertyValue("authenticationManager", new RuntimeBeanReference(BeanIds.AUTHENTICATION_MANAGER)); filterBuilder.addPropertyValue("authenticationManager", new RuntimeBeanReference(BeanIds.AUTHENTICATION_MANAGER));
parserContext.getRegistry().registerBeanDefinition(BeanIds.X509_FILTER, filterBuilder.getBeanDefinition()); parserContext.getRegistry().registerBeanDefinition(BeanIds.X509_FILTER, filterBuilder.getBeanDefinition());
ConfigUtils.addHttpFilter(parserContext, new RuntimeBeanReference(BeanIds.X509_FILTER)); ConfigUtils.addHttpFilter(parserContext, new RuntimeBeanReference(BeanIds.X509_FILTER));
return null; return null;
} }
} }

View File

@ -42,7 +42,7 @@ abstract class SecurityExpressionRoot {
} }
public final boolean hasAnyRole(String... roles) { public final boolean hasAnyRole(String... roles) {
Set<String> roleSet = AuthorityUtils.authorityArrayToSet(authentication.getAuthorities()); Set<String> roleSet = AuthorityUtils.authorityListToSet(authentication.getAuthorities());
for (String role : roles) { for (String role : roles) {
if (roleSet.contains(role)) { if (roleSet.contains(role)) {

View File

@ -39,6 +39,9 @@ public class AnonymousAuthenticationToken extends AbstractAuthenticationToken im
//~ Constructors =================================================================================================== //~ Constructors ===================================================================================================
/**
* @deprecated use the second constructor
*/
public AnonymousAuthenticationToken(String key, Object principal, GrantedAuthority[] authorities) { public AnonymousAuthenticationToken(String key, Object principal, GrantedAuthority[] authorities) {
this(key, principal, Arrays.asList(authorities)); this(key, principal, Arrays.asList(authorities));
} }

View File

@ -243,7 +243,7 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa
Assert.notNull(authorities); Assert.notNull(authorities);
logger.debug("Creating new group '" + groupName + "' with authorities " + logger.debug("Creating new group '" + groupName + "' with authorities " +
AuthorityUtils.authorityArrayToSet(authorities)); AuthorityUtils.authorityListToSet(authorities));
getJdbcTemplate().update(insertGroupSql, new String[] {groupName}); getJdbcTemplate().update(insertGroupSql, new String[] {groupName});

View File

@ -15,14 +15,13 @@
package org.springframework.security.userdetails.memory; package org.springframework.security.userdetails.memory;
import org.springframework.security.GrantedAuthority;
import org.springframework.security.GrantedAuthorityImpl;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Vector; import java.util.Vector;
import org.springframework.security.GrantedAuthority;
import org.springframework.security.GrantedAuthorityImpl;
/** /**
* Used by {@link InMemoryDaoImpl} to temporarily store the attributes associated with a user. * Used by {@link InMemoryDaoImpl} to temporarily store the attributes associated with a user.
@ -37,21 +36,14 @@ public class UserAttribute {
private String password; private String password;
private boolean enabled = true; private boolean enabled = true;
//~ Constructors ===================================================================================================
public UserAttribute() {
}
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================
public void addAuthority(GrantedAuthority newAuthority) { public void addAuthority(GrantedAuthority newAuthority) {
this.authorities.add(newAuthority); this.authorities.add(newAuthority);
} }
public GrantedAuthority[] getAuthorities() { public List<GrantedAuthority> getAuthorities() {
GrantedAuthority[] toReturn = {new GrantedAuthorityImpl("demo")}; return this.authorities;
return this.authorities.toArray(toReturn);
} }
/** /**

View File

@ -61,22 +61,15 @@ public abstract class AuthorityUtils {
* @param authorityString the comma-separated string * @param authorityString the comma-separated string
* @return the authorities created by tokenizing the string * @return the authorities created by tokenizing the string
*/ */
public static GrantedAuthority[] commaSeparatedStringToAuthorityArray(String authorityString) { public static List<GrantedAuthority> commaSeparatedStringToAuthorityList(String authorityString) {
String[] authorityStrings = StringUtils.tokenizeToStringArray(authorityString, ","); return createAuthorityList(StringUtils.tokenizeToStringArray(authorityString, ","));
GrantedAuthority[] authorities = new GrantedAuthority[authorityStrings.length];
for (int i=0; i < authorityStrings.length; i++) {
authorities[i] = new GrantedAuthorityImpl(authorityStrings[i]);
}
return authorities;
} }
/** /**
* Converts an array of GrantedAuthority objects to a Set. * Converts an array of GrantedAuthority objects to a Set.
* @return a Set of the Strings obtained from each call to GrantedAuthority.getAuthority() * @return a Set of the Strings obtained from each call to GrantedAuthority.getAuthority()
*/ */
public static Set<String> authorityArrayToSet(List<GrantedAuthority> authorities) { public static Set<String> authorityListToSet(List<GrantedAuthority> authorities) {
Set<String> set = new HashSet<String>(authorities.size()); Set<String> set = new HashSet<String>(authorities.size());
for (GrantedAuthority authority: authorities) { for (GrantedAuthority authority: authorities) {

View File

@ -116,7 +116,7 @@ public class JdbcUserServiceBeanDefinitionParserTests {
setContext("<jdbc-user-service id='myUserService' role-prefix='PREFIX_' data-source-ref='dataSource'/>" + DATA_SOURCE); setContext("<jdbc-user-service id='myUserService' role-prefix='PREFIX_' data-source-ref='dataSource'/>" + DATA_SOURCE);
JdbcUserDetailsManager mgr = (JdbcUserDetailsManager) appContext.getBean("myUserService"); JdbcUserDetailsManager mgr = (JdbcUserDetailsManager) appContext.getBean("myUserService");
UserDetails rod = mgr.loadUserByUsername("rod"); UserDetails rod = mgr.loadUserByUsername("rod");
assertTrue(AuthorityUtils.authorityArrayToSet(rod.getAuthorities()).contains("PREFIX_ROLE_SUPERVISOR")); assertTrue(AuthorityUtils.authorityListToSet(rod.getAuthorities()).contains("PREFIX_ROLE_SUPERVISOR"));
} }

View File

@ -41,7 +41,7 @@ public class LdapUserServiceBeanDefinitionParserTests {
UserDetailsService uds = (UserDetailsService) appCtx.getBean("ldapUDS"); UserDetailsService uds = (UserDetailsService) appCtx.getBean("ldapUDS");
UserDetails ben = uds.loadUserByUsername("ben"); UserDetails ben = uds.loadUserByUsername("ben");
Set authorities = AuthorityUtils.authorityArrayToSet(ben.getAuthorities()); Set authorities = AuthorityUtils.authorityListToSet(ben.getAuthorities());
assertEquals(3, authorities.size()); assertEquals(3, authorities.size());
assertTrue(authorities.contains("ROLE_DEVELOPERS")); assertTrue(authorities.contains("ROLE_DEVELOPERS"));
} }
@ -71,11 +71,11 @@ public class LdapUserServiceBeanDefinitionParserTests {
UserDetailsService uds = (UserDetailsService) appCtx.getBean("ldapUDS"); UserDetailsService uds = (UserDetailsService) appCtx.getBean("ldapUDS");
UserDetails ben = uds.loadUserByUsername("ben"); UserDetails ben = uds.loadUserByUsername("ben");
assertTrue(AuthorityUtils.authorityArrayToSet(ben.getAuthorities()).contains("PREFIX_DEVELOPERS")); assertTrue(AuthorityUtils.authorityListToSet(ben.getAuthorities()).contains("PREFIX_DEVELOPERS"));
uds = (UserDetailsService) appCtx.getBean("ldapUDSNoPrefix"); uds = (UserDetailsService) appCtx.getBean("ldapUDSNoPrefix");
ben = uds.loadUserByUsername("ben"); ben = uds.loadUserByUsername("ben");
assertTrue(AuthorityUtils.authorityArrayToSet(ben.getAuthorities()).contains("DEVELOPERS")); assertTrue(AuthorityUtils.authorityListToSet(ben.getAuthorities()).contains("DEVELOPERS"));
} }
@ -87,7 +87,7 @@ public class LdapUserServiceBeanDefinitionParserTests {
UserDetailsService uds = (UserDetailsService) appCtx.getBean("ldapUDS"); UserDetailsService uds = (UserDetailsService) appCtx.getBean("ldapUDS");
UserDetails ben = uds.loadUserByUsername("ben"); UserDetails ben = uds.loadUserByUsername("ben");
Set authorities = AuthorityUtils.authorityArrayToSet(ben.getAuthorities()); Set authorities = AuthorityUtils.authorityListToSet(ben.getAuthorities());
assertEquals(3, authorities.size()); assertEquals(3, authorities.size());
assertTrue(authorities.contains(new GrantedAuthorityImpl("ROLE_DEVELOPER"))); assertTrue(authorities.contains(new GrantedAuthorityImpl("ROLE_DEVELOPER")));

View File

@ -36,8 +36,7 @@ public class SpringSecurityAuthenticationSourceTests {
AuthenticationSource source = new SpringSecurityAuthenticationSource(); AuthenticationSource source = new SpringSecurityAuthenticationSource();
SecurityContextHolder.getContext().setAuthentication( SecurityContextHolder.getContext().setAuthentication(
new AnonymousAuthenticationToken("key", "anonUser", new AnonymousAuthenticationToken("key", "anonUser", AuthorityUtils.createAuthorityList("ignored")));
AuthorityUtils.commaSeparatedStringToAuthorityArray("ignored")));
assertEquals("", source.getPrincipal()); assertEquals("", source.getPrincipal());
} }

View File

@ -44,7 +44,7 @@ public class LdapUserDetailsServiceTests {
UserDetails user = service.loadUserByUsername("doesntmatterwegetjoeanyway"); UserDetails user = service.loadUserByUsername("doesntmatterwegetjoeanyway");
Set authorities = AuthorityUtils.authorityArrayToSet(user.getAuthorities()); Set authorities = AuthorityUtils.authorityListToSet(user.getAuthorities());
assertEquals(1, authorities.size()); assertEquals(1, authorities.size());
assertTrue(authorities.contains("ROLE_FROM_POPULATOR")); assertTrue(authorities.contains("ROLE_FROM_POPULATOR"));
} }

View File

@ -28,25 +28,6 @@ import org.springframework.security.userdetails.memory.UserAttributeEditor;
* @version $Id$ * @version $Id$
*/ */
public class UserAttributeEditorTests extends TestCase { public class UserAttributeEditorTests extends TestCase {
//~ Constructors ===================================================================================================
public UserAttributeEditorTests() {
super();
}
public UserAttributeEditorTests(String arg0) {
super(arg0);
}
//~ Methods ========================================================================================================
public static void main(String[] args) {
junit.textui.TestRunner.run(UserAttributeEditorTests.class);
}
public final void setUp() throws Exception {
super.setUp();
}
public void testCorrectOperationWithTrailingSpaces() { public void testCorrectOperationWithTrailingSpaces() {
UserAttributeEditor editor = new UserAttributeEditor(); UserAttributeEditor editor = new UserAttributeEditor();
@ -54,9 +35,9 @@ public class UserAttributeEditorTests extends TestCase {
UserAttribute user = (UserAttribute) editor.getValue(); UserAttribute user = (UserAttribute) editor.getValue();
assertEquals("password", user.getPassword()); assertEquals("password", user.getPassword());
assertEquals(2, user.getAuthorities().length); assertEquals(2, user.getAuthorities().size());
assertEquals("ROLE_ONE", user.getAuthorities()[0].getAuthority()); assertEquals("ROLE_ONE", user.getAuthorities().get(0).getAuthority());
assertEquals("ROLE_TWO", user.getAuthorities()[1].getAuthority()); assertEquals("ROLE_TWO", user.getAuthorities().get(1).getAuthority());
} }
public void testCorrectOperationWithoutEnabledDisabledKeyword() { public void testCorrectOperationWithoutEnabledDisabledKeyword() {
@ -67,9 +48,9 @@ public class UserAttributeEditorTests extends TestCase {
assertTrue(user.isValid()); assertTrue(user.isValid());
assertTrue(user.isEnabled()); // default assertTrue(user.isEnabled()); // default
assertEquals("password", user.getPassword()); assertEquals("password", user.getPassword());
assertEquals(2, user.getAuthorities().length); assertEquals(2, user.getAuthorities().size());
assertEquals("ROLE_ONE", user.getAuthorities()[0].getAuthority()); assertEquals("ROLE_ONE", user.getAuthorities().get(0).getAuthority());
assertEquals("ROLE_TWO", user.getAuthorities()[1].getAuthority()); assertEquals("ROLE_TWO", user.getAuthorities().get(1).getAuthority());
} }
public void testDisabledKeyword() { public void testDisabledKeyword() {
@ -80,9 +61,9 @@ public class UserAttributeEditorTests extends TestCase {
assertTrue(user.isValid()); assertTrue(user.isValid());
assertTrue(!user.isEnabled()); assertTrue(!user.isEnabled());
assertEquals("password", user.getPassword()); assertEquals("password", user.getPassword());
assertEquals(2, user.getAuthorities().length); assertEquals(2, user.getAuthorities().size());
assertEquals("ROLE_ONE", user.getAuthorities()[0].getAuthority()); assertEquals("ROLE_ONE", user.getAuthorities().get(0).getAuthority());
assertEquals("ROLE_TWO", user.getAuthorities()[1].getAuthority()); assertEquals("ROLE_TWO", user.getAuthorities().get(1).getAuthority());
} }
public void testEmptyStringReturnsNull() { public void testEmptyStringReturnsNull() {
@ -101,9 +82,9 @@ public class UserAttributeEditorTests extends TestCase {
assertTrue(user.isValid()); assertTrue(user.isValid());
assertTrue(user.isEnabled()); assertTrue(user.isEnabled());
assertEquals("password", user.getPassword()); assertEquals("password", user.getPassword());
assertEquals(2, user.getAuthorities().length); assertEquals(2, user.getAuthorities().size());
assertEquals("ROLE_ONE", user.getAuthorities()[0].getAuthority()); assertEquals("ROLE_ONE", user.getAuthorities().get(0).getAuthority());
assertEquals("ROLE_TWO", user.getAuthorities()[1].getAuthority()); assertEquals("ROLE_TWO", user.getAuthorities().get(1).getAuthority());
} }
public void testMalformedStringReturnsNull() { public void testMalformedStringReturnsNull() {

View File

@ -1,18 +1,17 @@
package org.springframework.security.util; package org.springframework.security.util;
import static org.junit.Assert.*;
import java.util.List;
import java.util.Set;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.security.GrantedAuthority; import org.springframework.security.GrantedAuthority;
import org.springframework.security.context.SecurityContextHolder; import org.springframework.security.context.SecurityContextHolder;
import org.springframework.security.providers.UsernamePasswordAuthenticationToken; import org.springframework.security.providers.UsernamePasswordAuthenticationToken;
import org.junit.After;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Before;
import org.junit.Test;
import java.util.Arrays;
import java.util.Set;
/** /**
* @author Luke Taylor * @author Luke Taylor
* @version $Id$ * @version $Id$
@ -48,10 +47,10 @@ public class AuthorityUtilsTests {
@Test @Test
public void commaSeparatedStringIsParsedCorrectly() { public void commaSeparatedStringIsParsedCorrectly() {
GrantedAuthority[] authorityArray = List<GrantedAuthority> authorityArray =
AuthorityUtils.commaSeparatedStringToAuthorityArray(" ROLE_A, B, C, ROLE_D, E "); AuthorityUtils.commaSeparatedStringToAuthorityList(" ROLE_A, B, C, ROLE_D, E ");
Set authorities = AuthorityUtils.authorityArrayToSet(Arrays.asList(authorityArray)); Set<String> authorities = AuthorityUtils.authorityListToSet(authorityArray);
assertTrue(authorities.contains("B")); assertTrue(authorities.contains("B"));
assertTrue(authorities.contains("C")); assertTrue(authorities.contains("C"));
@ -59,6 +58,4 @@ public class AuthorityUtilsTests {
assertTrue(authorities.contains("ROLE_A")); assertTrue(authorities.contains("ROLE_A"));
assertTrue(authorities.contains("ROLE_D")); assertTrue(authorities.contains("ROLE_D"));
} }
} }