You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ka...@apache.org on 2010/07/15 11:44:13 UTC

svn commit: r964354 - /directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authn/SimpleAuthenticator.java

Author: kayyagari
Date: Thu Jul 15 09:44:13 2010
New Revision: 964354

URL: http://svn.apache.org/viewvc?rev=964354&view=rev
Log:
o added checks to not use the credentialCache when password policy is enabled
  (when pwdpolicy is enabled, we need to fetch the user entry with all OP ATs to perform the pwdpolicy state related checks)

Modified:
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authn/SimpleAuthenticator.java

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authn/SimpleAuthenticator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authn/SimpleAuthenticator.java?rev=964354&r1=964353&r2=964354&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authn/SimpleAuthenticator.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authn/SimpleAuthenticator.java Thu Jul 15 09:44:13 2010
@@ -193,9 +193,13 @@ public class SimpleAuthenticator extends
     {
         LdapPrincipal principal = null;
 
-        synchronized ( credentialCache )
+        // use cache only if pwdpolicy is not enabled
+        if( getPwdPolicyConfig() == null )
         {
-            principal = ( LdapPrincipal ) credentialCache.get( bindContext.getDn().getNormName() );
+            synchronized ( credentialCache )
+            {
+                principal = ( LdapPrincipal ) credentialCache.get( bindContext.getDn().getNormName() );
+            }
         }
 
         byte[] storedPassword;
@@ -218,10 +222,13 @@ public class SimpleAuthenticator extends
             // Create the new principal before storing it in the cache
             principal = new LdapPrincipal( bindContext.getDn(), AuthenticationLevel.SIMPLE, storedPassword );
 
-            // Now, update the local cache.
-            synchronized ( credentialCache )
+            // Now, update the local cache ONLY if pwdpolicy is not enabled.
+            if( getPwdPolicyConfig() == null )
             {
-                credentialCache.put( bindContext.getDn().getNormName(), principal );
+                synchronized ( credentialCache )
+                {
+                    credentialCache.put( bindContext.getDn().getNormName(), principal );
+                }
             }
         }