소스 검색

SEC-536: Added account status checking to Cas provider

Luke Taylor 17 년 전
부모
커밋
48e2c38736
1개의 변경된 파일4개의 추가작업 그리고 0개의 파일을 삭제
  1. 4 0
      core/src/main/java/org/springframework/security/providers/cas/CasAuthenticationProvider.java

+ 4 - 0
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(),