Update new X509 namespace config to use status checking of user accounts by default.

This commit is contained in:
Luke Taylor 2008-02-04 19:43:09 +00:00
parent 600ab04cc7
commit 2343577fec

View File

@ -5,6 +5,7 @@ import org.springframework.security.ui.preauth.x509.X509PreAuthenticatedProcessi
import org.springframework.security.ui.preauth.x509.SubjectDnX509PrincipalExtractor; import org.springframework.security.ui.preauth.x509.SubjectDnX509PrincipalExtractor;
import org.springframework.security.providers.preauth.PreAuthenticatedAuthenticationProvider; import org.springframework.security.providers.preauth.PreAuthenticatedAuthenticationProvider;
import org.springframework.security.providers.preauth.UserDetailsByNameServiceWrapper; import org.springframework.security.providers.preauth.UserDetailsByNameServiceWrapper;
import org.springframework.security.userdetails.decorator.StatusCheckingUserDetailsService;
import org.springframework.beans.factory.xml.BeanDefinitionParser; import org.springframework.beans.factory.xml.BeanDefinitionParser;
import org.springframework.beans.factory.xml.ParserContext; import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.BeanDefinition;
@ -47,9 +48,10 @@ public class X509BeanDefinitionParser implements BeanDefinitionParser {
String userServiceRef = element.getAttribute(ATT_USER_SERVICE_REF); String userServiceRef = element.getAttribute(ATT_USER_SERVICE_REF);
if (StringUtils.hasText(userServiceRef)) { if (StringUtils.hasText(userServiceRef)) {
RuntimeBeanReference userService = new RuntimeBeanReference(userServiceRef); RootBeanDefinition statusCheckingUserService = new RootBeanDefinition(StatusCheckingUserDetailsService.class);
statusCheckingUserService.getConstructorArgumentValues().addIndexedArgumentValue(0, new RuntimeBeanReference(userServiceRef));
BeanDefinition preAuthUserService = new RootBeanDefinition(UserDetailsByNameServiceWrapper.class); BeanDefinition preAuthUserService = new RootBeanDefinition(UserDetailsByNameServiceWrapper.class);
preAuthUserService.getPropertyValues().addPropertyValue("userDetailsService", userService); preAuthUserService.getPropertyValues().addPropertyValue("userDetailsService", statusCheckingUserService);
provider.getPropertyValues().addPropertyValue("preAuthenticatedUserDetailsService", preAuthUserService); provider.getPropertyValues().addPropertyValue("preAuthenticatedUserDetailsService", preAuthUserService);
} }