diff --git a/core/src/main/java/org/springframework/security/providers/cas/CasAuthenticationProvider.java b/core/src/main/java/org/springframework/security/providers/cas/CasAuthenticationProvider.java index 7f78d84a47..58f539a5a9 100644 --- a/core/src/main/java/org/springframework/security/providers/cas/CasAuthenticationProvider.java +++ b/core/src/main/java/org/springframework/security/providers/cas/CasAuthenticationProvider.java @@ -28,6 +28,8 @@ import org.springframework.security.ui.cas.CasProcessingFilter; import org.springframework.security.userdetails.UserDetails; import org.springframework.security.userdetails.UserDetailsService; +import org.springframework.security.userdetails.UserDetailsChecker; +import org.springframework.security.userdetails.checker.AccountStatusUserDetailsChecker; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -61,6 +63,7 @@ public class CasAuthenticationProvider implements AuthenticationProvider, Initia //~ Instance fields ================================================================================================ private UserDetailsService userDetailsService; + private UserDetailsChecker userDetailsChecker = new AccountStatusUserDetailsChecker(); private CasProxyDecider casProxyDecider; protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor(); private StatelessTicketCache statelessTicketCache = new NullStatelessTicketCache(); @@ -142,6 +145,7 @@ public class CasAuthenticationProvider implements AuthenticationProvider, Initia // Lookup user details UserDetails userDetails = userDetailsService.loadUserByUsername(response.getUser()); + userDetailsChecker.check(userDetails); // Construct CasAuthenticationToken return new CasAuthenticationToken(this.key, userDetails, authentication.getCredentials(),