Browse Source

SEC-658: Add support for ldap-user-service to AuthenticationProviderBeanDefinitionParser.

2.0.x
Luke Taylor 18 years ago
parent
commit
ca75905c3e
  1. 3
      core/src/main/java/org/springframework/security/config/AuthenticationProviderBeanDefinitionParser.java
  2. 1
      core/src/main/resources/org/springframework/security/config/spring-security-2.0.xsd
  3. 14
      core/src/test/java/org/springframework/security/config/AuthenticationProviderBeanDefinitionParserTests.java

3
core/src/main/java/org/springframework/security/config/AuthenticationProviderBeanDefinitionParser.java

@ -40,6 +40,7 @@ class AuthenticationProviderBeanDefinitionParser implements BeanDefinitionParser @@ -40,6 +40,7 @@ class AuthenticationProviderBeanDefinitionParser implements BeanDefinitionParser
String ref = element.getAttribute(ATT_USER_DETAILS_REF);
Element userServiceElt = DomUtils.getChildElementByTagName(element, Elements.USER_SERVICE);
Element jdbcUserServiceElt = DomUtils.getChildElementByTagName(element, Elements.JDBC_USER_SERVICE);
Element ldapUserServiceElt = DomUtils.getChildElementByTagName(element, Elements.LDAP_USER_SERVICE);
if (StringUtils.hasText(ref)) {
if (userServiceElt != null || jdbcUserServiceElt != null) {
@ -59,6 +60,8 @@ class AuthenticationProviderBeanDefinitionParser implements BeanDefinitionParser @@ -59,6 +60,8 @@ class AuthenticationProviderBeanDefinitionParser implements BeanDefinitionParser
userDetailsService = new UserServiceBeanDefinitionParser().parse(userServiceElt, parserContext);
} else if (jdbcUserServiceElt != null) {
userDetailsService = new JdbcUserServiceBeanDefinitionParser().parse(jdbcUserServiceElt, parserContext);
} else if (ldapUserServiceElt != null) {
userDetailsService = new LdapUserServiceBeanDefinitionParser().parse(ldapUserServiceElt, parserContext);
} else {
throw new SecurityConfigurationException(Elements.AUTHENTICATION_PROVIDER
+ " requires a UserDetailsService" );

1
core/src/main/resources/org/springframework/security/config/spring-security-2.0.xsd

@ -631,6 +631,7 @@ @@ -631,6 +631,7 @@
<xs:choice>
<xs:element ref="security:user-service"/>
<xs:element ref="security:jdbc-user-service"/>
<xs:element ref="security:ldap-user-service"/>
</xs:choice>
<xs:element ref="security:password-encoder"/>
</xs:choice>

14
core/src/test/java/org/springframework/security/config/AuthenticationProviderBeanDefinitionParserTests.java

@ -71,6 +71,20 @@ public class AuthenticationProviderBeanDefinitionParserTests { @@ -71,6 +71,20 @@ public class AuthenticationProviderBeanDefinitionParserTests {
getProvider().authenticate(bob);
}
@Test
public void worksWithJdbcUserService() throws Exception {
setContext(" <authentication-provider>" +
" <password-encoder hash='{sha}'/>" +
" <user-service>" +
" <user name='bob' password='{SSHA}PpuEwfdj7M1rs0C2W4ssSM2XEN/Y6S5U' authorities='ROLE_A' />" +
" </user-service>" +
" </authentication-provider>");
getProvider().authenticate(bob);
}
@Test
public void externalUserServiceAndPasswordEncoderWork() throws Exception {
setContext(" <authentication-provider user-service-ref='customUserService'>" +

Loading…
Cancel
Save