syncope-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ilgro...@apache.org
Subject svn commit: r1608371 - /syncope/branches/1_2_X/core/src/main/java/org/apache/syncope/core/security/SyncopeAuthenticationProvider.java
Date Mon, 07 Jul 2014 08:54:30 GMT
Author: ilgrosso
Date: Mon Jul  7 08:54:30 2014
New Revision: 1608371

URL: http://svn.apache.org/r1608371
Log:
[SYNCOPE-137] Merge from 1_1_X

Modified:
    syncope/branches/1_2_X/core/src/main/java/org/apache/syncope/core/security/SyncopeAuthenticationProvider.java

Modified: syncope/branches/1_2_X/core/src/main/java/org/apache/syncope/core/security/SyncopeAuthenticationProvider.java
URL: http://svn.apache.org/viewvc/syncope/branches/1_2_X/core/src/main/java/org/apache/syncope/core/security/SyncopeAuthenticationProvider.java?rev=1608371&r1=1608370&r2=1608371&view=diff
==============================================================================
--- syncope/branches/1_2_X/core/src/main/java/org/apache/syncope/core/security/SyncopeAuthenticationProvider.java
(original)
+++ syncope/branches/1_2_X/core/src/main/java/org/apache/syncope/core/security/SyncopeAuthenticationProvider.java
Mon Jul  7 08:54:30 2014
@@ -22,9 +22,7 @@ import java.util.Collections;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.Set;
-
 import javax.annotation.Resource;
-
 import org.apache.syncope.common.types.AttributableType;
 import org.apache.syncope.common.types.AuditElements;
 import org.apache.syncope.common.types.AuditElements.Result;
@@ -144,18 +142,17 @@ public class SyncopeAuthenticationProvid
                 }
 
                 CAttr authStatuses = confDAO.find("authentication.statuses");
-                if (authStatuses != null) {
-                    if (!authStatuses.getValuesAsStrings().contains(user.getStatus())) {
-                        throw new DisabledException("User " + user.getUsername() + " not
allowed to authenticate");
-                    }
+                if (authStatuses != null && !authStatuses.getValuesAsStrings().contains(user.getStatus()))
{
+                    throw new DisabledException("User " + user.getUsername() + " not allowed
to authenticate");
                 }
 
                 authenticated = authenticate(user, authentication.getCredentials().toString());
+
+                updateLoginAttributes(user, authenticated);
             }
         }
 
         UsernamePasswordAuthenticationToken token;
-
         if (authenticated) {
             token = new UsernamePasswordAuthenticationToken(
                     authentication.getPrincipal(),
@@ -177,20 +174,7 @@ public class SyncopeAuthenticationProvid
 
             LOG.debug("User {} successfully authenticated, with roles {}",
                     authentication.getPrincipal(), token.getAuthorities());
-
-            if (user != null && confDAO.find("log.lastlogindate", Boolean.toString(true)).
-                    getValues().get(0).getBooleanValue()) {
-
-                user.setLastLoginDate(new Date());
-                user.setFailedLogins(0);
-                userDAO.save(user);
-            }
         } else {
-            if (user != null) {
-                user.setFailedLogins(user.getFailedLogins() + 1);
-                userDAO.save(user);
-            }
-
             auditManager.audit(
                     AuditElements.EventCategoryType.REST,
                     "AuthenticationController",
@@ -210,6 +194,29 @@ public class SyncopeAuthenticationProvid
         return token;
     }
 
+    private void updateLoginAttributes(SyncopeUser user, boolean authenticated) {
+        boolean userModified = false;
+
+        if (authenticated) {
+            if (confDAO.find("log.lastlogindate", Boolean.toString(true)).getValues().get(0).getBooleanValue())
{
+                user.setLastLoginDate(new Date());
+                userModified = true;
+            }
+
+            if (user.getFailedLogins() != 0) {
+                user.setFailedLogins(0);
+                userModified = true;
+            }
+        } else {
+            user.setFailedLogins(user.getFailedLogins() + 1);
+            userModified = true;
+        }
+
+        if (userModified) {
+            userDAO.save(user);
+        }
+    }
+
     protected Set<ExternalResource> getPassthroughResources(final SyncopeUser user)
{
         Set<ExternalResource> result = null;
 
@@ -244,7 +251,7 @@ public class SyncopeAuthenticationProvid
                 result.retainAll(global.getResources());
             }
         }
-        
+
         if (result == null) {
             result = Collections.emptySet();
         }
@@ -259,7 +266,7 @@ public class SyncopeAuthenticationProvid
         final AttributableUtil attrUtil = AttributableUtil.getInstance(AttributableType.USER);
         for (Iterator<ExternalResource> itor = getPassthroughResources(user).iterator();
                 itor.hasNext() && !authenticated;) {
-            
+
             ExternalResource resource = itor.next();
             String accountId = null;
             try {



Mime
View raw message