1
0
mirror of synced 2026-08-05 01:36:56 +00:00

SEC-630: Support for "properties" attribute in user-service namespace element.

This commit is contained in:
Luke Taylor
2008-01-21 17:15:53 +00:00
parent 59a947bbe5
commit 9836bda5b3
4 changed files with 98 additions and 2 deletions
@@ -0,0 +1,71 @@
package org.springframework.security.config;
import org.springframework.security.util.InMemoryXmlApplicationContext;
import org.springframework.security.userdetails.UserDetailsService;
import org.springframework.context.support.AbstractXmlApplicationContext;
import org.springframework.beans.FatalBeanException;
import org.junit.Test;
import org.junit.After;
/**
* @author Luke Taylor
* @version $Id$
*/
public class UserServiceBeanDefinitionParserTests {
private AbstractXmlApplicationContext appContext;
@After
public void closeAppContext() {
if (appContext != null) {
appContext.close();
}
}
@Test
public void userServiceWithValidPropertiesFileWorksSuccessfully() {
setContext(
"<user-service id='service' " +
"properties='classpath:org/springframework/security/config/users.properties'/>");
UserDetailsService userService = (UserDetailsService) appContext.getBean("service");
userService.loadUserByUsername("bob");
userService.loadUserByUsername("joe");
}
@Test
public void userServiceWithEmbeddedUsersWorksSuccessfully() {
setContext(
"<user-service id='service'>" +
" <user name='joe' password='joespassword' authorities='ROLE_A'/>" +
"</user-service>");
UserDetailsService userService = (UserDetailsService) appContext.getBean("service");
userService.loadUserByUsername("joe");
}
@Test(expected=FatalBeanException.class)
public void userWithBothPropertiesAndEmbeddedUsersThrowsException() {
setContext(
"<user-service id='service' properties='doesntmatter.props'>" +
" <user name='joe' password='joespassword' authorities='ROLE_A'/>" +
"</user-service>");
UserDetailsService userService = (UserDetailsService) appContext.getBean("service");
userService.loadUserByUsername("joe");
}
@Test(expected= FatalBeanException.class)
public void multipleTopLevelUseWithoutIdThrowsException() {
setContext(
"<user-service properties='classpath:org/springframework/security/config/users.properties'/>" +
"<user-service properties='classpath:org/springframework/security/config/users.properties'/>");
}
@Test(expected= FatalBeanException.class)
public void userServiceWithMissingPropertiesFileThrowsException() {
setContext("<user-service id='service' properties='classpath:doesntexist.properties'/>");
}
private void setContext(String context) {
appContext = new InMemoryXmlApplicationContext(context);
}
}
@@ -0,0 +1,2 @@
joe=joespassword,ROLE_A
bob=bobspassword,ROLE_A,ROLE_B