Author: tripod
Date: Fri Mar 14 00:50:12 2014
New Revision: 1577399

URL: http://svn.apache.org/r1577399
Log:
OAK-1261 Enable LDAP related tests

enable all tests but 2 that still fail (see OAK-1541)

Modified:
    
jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/ExternalLoginModule.java
    
jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalLoginModuleTest.java
    
jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalLoginModuleTestBase.java
    
jackrabbit/oak/trunk/oak-auth-ldap/src/main/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityProvider.java
    
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/InternalLdapServer.java
    
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LdapLoginTestBase.java
    
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LdapProviderTest.java

Modified: 
jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/ExternalLoginModule.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/ExternalLoginModule.java?rev=1577399&r1=1577398&r2=1577399&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/ExternalLoginModule.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/ExternalLoginModule.java
 Fri Mar 14 00:50:12 2014
@@ -18,6 +18,7 @@ package org.apache.jackrabbit.oak.spi.se
 
 import java.security.Principal;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
@@ -29,11 +30,13 @@ import javax.security.auth.callback.Call
 import javax.security.auth.login.LoginException;
 
 import org.apache.jackrabbit.api.security.user.UserManager;
+import org.apache.jackrabbit.oak.api.AuthInfo;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.AbstractLoginModule;
 import org.apache.jackrabbit.oak.spi.security.authentication.AuthInfoImpl;
+import 
org.apache.jackrabbit.oak.spi.security.authentication.ImpersonationCredentials;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentityException;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentityProvider;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentityProviderManager;
@@ -242,7 +245,7 @@ public class ExternalLoginModule extends
             if (!subject.isReadOnly()) {
                 subject.getPrincipals().addAll(principals);
                 subject.getPublicCredentials().add(credentials);
-                setAuthInfo(new AuthInfoImpl(externalUser.getId(), null, 
principals), subject);
+                setAuthInfo(createAuthInfo(externalUser.getId(), principals), 
subject);
             } else {
                 log.debug("Could not add information to read only subject {}", 
subject);
             }
@@ -325,6 +328,29 @@ public class ExternalLoginModule extends
         }
 
     }
+
+    private AuthInfo createAuthInfo(String userId, Set<? extends Principal> 
principals) {
+        Credentials creds;
+        if (credentials instanceof ImpersonationCredentials) {
+            creds = ((ImpersonationCredentials) 
credentials).getBaseCredentials();
+        } else {
+            creds = credentials;
+        }
+        Map<String, Object> attributes = new HashMap<String, Object>();
+        Object shared = sharedState.get(SHARED_KEY_ATTRIBUTES);
+        if (shared instanceof Map) {
+            for (Object key : ((Map) shared).keySet()) {
+                attributes.put(key.toString(), ((Map) shared).get(key));
+            }
+        } else if (creds instanceof SimpleCredentials) {
+            SimpleCredentials sc = (SimpleCredentials) creds;
+            for (String attrName : sc.getAttributeNames()) {
+                attributes.put(attrName, sc.getAttribute(attrName));
+            }
+        }
+        return new AuthInfoImpl(userId, attributes, principals);
+    }
+
     //------------------------------------------------< AbstractLoginModule 
>---
 
     @Override

Modified: 
jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalLoginModuleTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalLoginModuleTest.java?rev=1577399&r1=1577398&r2=1577399&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalLoginModuleTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalLoginModuleTest.java
 Fri Mar 14 00:50:12 2014
@@ -60,6 +60,11 @@ public class ExternalLoginModuleTest ext
         return new TestIdentityProvider();
     }
 
+    @Override
+    protected void destroyIDP(ExternalIdentityProvider idp) {
+    // ignore
+    }
+
     @Test
     public void testLoginFailed() throws Exception {
         UserManager userManager = getUserManager(root);

Modified: 
jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalLoginModuleTestBase.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalLoginModuleTestBase.java?rev=1577399&r1=1577398&r2=1577399&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalLoginModuleTestBase.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalLoginModuleTestBase.java
 Fri Mar 14 00:50:12 2014
@@ -93,6 +93,7 @@ public abstract class ExternalLoginModul
             testIdpReg.unregister();
             testIdpReg = null;
         }
+        destroyIDP(idp);
         idp = null;
         setSyncConfig(null);
 
@@ -129,6 +130,8 @@ public abstract class ExternalLoginModul
 
     protected abstract ExternalIdentityProvider createIDP();
 
+    protected abstract void destroyIDP(ExternalIdentityProvider idp);
+
     protected void setSyncConfig(DefaultSyncConfig cfg) {
         if (syncHandlerReg != null) {
             syncHandlerReg.unregister();

Modified: 
jackrabbit/oak/trunk/oak-auth-ldap/src/main/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityProvider.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-ldap/src/main/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityProvider.java?rev=1577399&r1=1577398&r2=1577399&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-auth-ldap/src/main/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityProvider.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-auth-ldap/src/main/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityProvider.java
 Fri Mar 14 00:50:12 2014
@@ -98,6 +98,11 @@ public class LdapIdentityProvider implem
     private UnboundLdapConnectionPool userPool;
 
     /**
+     * temporary flag to disable connection pooling during unit tests. somehow 
the internal DS does not work correctly.
+     */
+    public boolean disableConnectionPooling;
+
+    /**
      * Default constructor for OSGi
      */
     @SuppressWarnings("UnusedDeclaration")
@@ -295,20 +300,27 @@ public class LdapIdentityProvider implem
         req.setFilter(searchFilter);
 
         // Process the request
-        SearchCursor searchCursor = connection.search(req);
-        while (searchCursor.next()) {
-            Response response = searchCursor.get();
-
-            // process the SearchResultEntry
-            if (response instanceof SearchResultEntry) {
-                Entry resultEntry = ((SearchResultEntry) response).getEntry();
-                if (searchCursor.next()) {
-                    log.warn("search for {} returned more than one entry. 
discarding additional ones.", searchFilter);
-                }
-                if (log.isDebugEnabled()) {
-                    log.debug("search below {} with {} found {}", 
idConfig.getBaseDN(), searchFilter, resultEntry.getDn());
+        SearchCursor searchCursor = null;
+        try {
+            searchCursor = connection.search(req);
+            while (searchCursor.next()) {
+                Response response = searchCursor.get();
+
+                // process the SearchResultEntry
+                if (response instanceof SearchResultEntry) {
+                    Entry resultEntry = ((SearchResultEntry) 
response).getEntry();
+                    if (searchCursor.next()) {
+                        log.warn("search for {} returned more than one entry. 
discarding additional ones.", searchFilter);
+                    }
+                    if (log.isDebugEnabled()) {
+                        log.debug("search below {} with {} found {}", 
idConfig.getBaseDN(), searchFilter, resultEntry.getDn());
+                    }
+                    return resultEntry;
                 }
-                return resultEntry;
+            }
+        } finally {
+            if (searchCursor != null) {
+                searchCursor.close();
             }
         }
         if (log.isDebugEnabled()) {
@@ -369,6 +381,9 @@ public class LdapIdentityProvider implem
     private void disconnect(@Nullable LdapConnection connection) throws 
ExternalIdentityException {
         try {
             if (connection != null) {
+                if (disableConnectionPooling) {
+                    connection.close();
+                }
                 adminPool.releaseConnection(connection);
             }
         } catch (Exception e) {
@@ -430,6 +445,7 @@ public class LdapIdentityProvider implem
         String searchFilter = config.getMemberOfSearchFilter(ref.getId());
 
         LdapConnection connection = null;
+        SearchCursor searchCursor = null;
         try {
             // Create the SearchRequest object
             SearchRequest req = new SearchRequestImpl();
@@ -444,7 +460,7 @@ public class LdapIdentityProvider implem
             connection = connect();
             timer.mark("connect");
 
-            SearchCursor searchCursor = connection.search(req);
+            searchCursor = connection.search(req);
             timer.mark("search");
             while (searchCursor.next()) {
                 Response response = searchCursor.get();
@@ -464,6 +480,9 @@ public class LdapIdentityProvider implem
             log.error("Error during ldap membership search." ,e);
             throw new ExternalIdentityException("Error during ldap membership 
search.", e);
         } finally {
+            if (searchCursor != null) {
+                searchCursor.close();
+            }
             disconnect(connection);
         }
     }

Modified: 
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/InternalLdapServer.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/InternalLdapServer.java?rev=1577399&r1=1577398&r2=1577399&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/InternalLdapServer.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/InternalLdapServer.java
 Fri Mar 14 00:50:12 2014
@@ -19,19 +19,12 @@ package org.apache.jackrabbit.oak.securi
 import java.io.File;
 import java.io.InputStream;
 
-import javax.naming.NamingException;
 import javax.naming.directory.BasicAttributes;
 import javax.naming.directory.DirContext;
 import javax.naming.ldap.LdapContext;
 
-import org.apache.directory.api.ldap.model.entry.Entry;
-import org.apache.directory.api.ldap.model.exception.LdapException;
-import org.apache.directory.api.ldap.model.exception.LdapInvalidDnException;
-import org.apache.directory.api.ldap.model.name.Dn;
 import org.apache.directory.server.constants.ServerDNConstants;
-import org.apache.directory.server.core.entry.ServerEntry;
 import org.apache.directory.server.unit.AbstractServerTest;
-import org.apache.directory.shared.ldap.name.LdapDN;
 
 class InternalLdapServer extends AbstractServerTest {
 

Modified: 
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LdapLoginTestBase.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LdapLoginTestBase.java?rev=1577399&r1=1577398&r2=1577399&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LdapLoginTestBase.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LdapLoginTestBase.java
 Fri Mar 14 00:50:12 2014
@@ -20,6 +20,7 @@ import java.security.Principal;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
+
 import javax.jcr.SimpleCredentials;
 import javax.security.auth.login.LoginException;
 
@@ -30,10 +31,13 @@ import org.apache.jackrabbit.oak.api.Aut
 import org.apache.jackrabbit.oak.api.ContentSession;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
+import org.apache.jackrabbit.oak.plugins.value.ValueFactoryImpl;
 import 
org.apache.jackrabbit.oak.security.authentication.ldap.impl.LdapIdentityProvider;
 import 
org.apache.jackrabbit.oak.security.authentication.ldap.impl.LdapProviderConfig;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentityProvider;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalLoginModuleTestBase;
+import 
org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalUser;
+import 
org.apache.jackrabbit.oak.spi.security.authentication.external.impl.DefaultSyncConfig;
 import org.apache.jackrabbit.oak.spi.security.principal.PrincipalConfiguration;
 import org.apache.jackrabbit.oak.spi.security.principal.PrincipalProvider;
 import org.apache.jackrabbit.oak.spi.security.user.UserConfiguration;
@@ -67,15 +71,15 @@ public abstract class LdapLoginTestBase 
 
     protected static String GROUP_DN;
 
-    protected static int CONCURRENT_LOGINS = 10;
+    protected static int NUM_CONCURRENT_LOGINS = 10;
+    private static String[] CONCURRENT_TEST_USERS = new 
String[NUM_CONCURRENT_LOGINS];
+    private static String[] CONCURRENT_GROUP_TEST_USERS = new 
String[NUM_CONCURRENT_LOGINS];
 
     //initialize LDAP server only once (fast, but might turn out to be not 
sufficiently flexible in the future)
     protected static final boolean USE_COMMON_LDAP_FIXTURE = true;
 
     protected UserManager userManager;
 
-    protected LdapIdentityProvider idp;
-
     @BeforeClass
     public static void beforeClass() throws Exception {
         if (USE_COMMON_LDAP_FIXTURE) {
@@ -130,6 +134,14 @@ public abstract class LdapLoginTestBase 
     }
 
     @Override
+    protected void setSyncConfig(DefaultSyncConfig cfg) {
+        if (cfg != null) {
+            cfg.user().getPropertyMapping().put(USER_PROP, USER_ATTR);
+        }
+        super.setSyncConfig(cfg);
+    }
+
+    @Override
     protected ExternalIdentityProvider createIDP() {
         LdapProviderConfig cfg = new LdapProviderConfig()
                 .setName("ldap")
@@ -146,7 +158,14 @@ public abstract class LdapLoginTestBase 
                 .setBaseDN(ServerDNConstants.GROUPS_SYSTEM_DN)
                 .setObjectClasses(InternalLdapServer.GROUP_CLASS_ATTR);
 
-        return new LdapIdentityProvider(cfg);
+        LdapIdentityProvider ldapIDP = new LdapIdentityProvider(cfg);
+        ldapIDP.disableConnectionPooling = true;
+        return ldapIDP;
+    }
+
+    @Override
+    protected void destroyIDP(ExternalIdentityProvider idp) {
+        ((LdapIdentityProvider) idp).close();
     }
 
     /**
@@ -183,7 +202,6 @@ public abstract class LdapLoginTestBase 
         }
     }
 
-    @Ignore() // FIXME
     @Test
     public void testSyncCreateUser() throws Exception {
         ContentSession cs = null;
@@ -206,7 +224,6 @@ public abstract class LdapLoginTestBase 
         }
     }
 
-    @Ignore() // FIXME
     @Test
     public void testSyncCreateGroup() throws Exception {
         ContentSession cs = null;
@@ -214,8 +231,8 @@ public abstract class LdapLoginTestBase 
             cs = login(new SimpleCredentials(USER_ID, USER_PWD.toCharArray()));
 
             root.refresh();
-            assertNull(userManager.getAuthorizable(USER_ID));
-            assertNull(userManager.getAuthorizable(GROUP_DN));
+            assertNotNull(userManager.getAuthorizable(USER_ID));
+            assertNotNull(userManager.getAuthorizable(GROUP_NAME));
         } finally {
             if (cs != null) {
                 cs.close();
@@ -224,11 +241,12 @@ public abstract class LdapLoginTestBase 
         }
     }
 
-    @Ignore() // FIXME
     @Test
     public void testSyncUpdate() throws Exception {
         // create user upfront in order to test update mode
-        userManager.createUser(USER_ID, null);
+        Authorizable user = userManager.createUser(USER_ID, null);
+        ExternalUser externalUser = idp.getUser(USER_ID);
+        user.setProperty("rep:externalId", new ValueFactoryImpl(root, 
NamePathMapper.DEFAULT).createValue(externalUser.getExternalId().getString()));
         root.commit();
 
         ContentSession cs = null;
@@ -236,7 +254,7 @@ public abstract class LdapLoginTestBase 
             cs = login(new SimpleCredentials(USER_ID, USER_PWD.toCharArray()));
 
             root.refresh();
-            Authorizable user = userManager.getAuthorizable(USER_ID);
+             user = userManager.getAuthorizable(USER_ID);
             assertNotNull(user);
             assertTrue(user.hasProperty(USER_PROP));
             assertNull(userManager.getAuthorizable(GROUP_DN));
@@ -248,7 +266,6 @@ public abstract class LdapLoginTestBase 
         }
     }
 
-    @Ignore() // FIXME
     @Test
     public void testLoginSetsAuthInfo() throws Exception {
         ContentSession cs = null;
@@ -268,7 +285,6 @@ public abstract class LdapLoginTestBase 
         }
     }
 
-    @Ignore() // FIXME
     @Test
     public void testPrincipalsFromAuthInfo() throws Exception {
         ContentSession cs = null;
@@ -282,30 +298,6 @@ public abstract class LdapLoginTestBase 
             root.refresh();
             PrincipalProvider pp = 
getSecurityProvider().getConfiguration(PrincipalConfiguration.class).getPrincipalProvider(root,
 NamePathMapper.DEFAULT);
             Set<? extends Principal> expected = pp.getPrincipals(USER_ID);
-            assertEquals(2, expected.size());
-            assertEquals(expected, ai.getPrincipals());
-
-        } finally {
-            if (cs != null) {
-                cs.close();
-            }
-        }
-    }
-
-    @Ignore() // FIXME
-    @Test
-    public void testPrincipalsFromAuthInfo2() throws Exception {
-        ContentSession cs = null;
-        try {
-            SimpleCredentials sc = new SimpleCredentials(USER_ID, 
USER_PWD.toCharArray());
-            sc.setAttribute("attr", "val");
-
-            cs = login(sc);
-            AuthInfo ai = cs.getAuthInfo();
-
-            root.refresh();
-            PrincipalProvider pp = 
getSecurityProvider().getConfiguration(PrincipalConfiguration.class).getPrincipalProvider(root,
 NamePathMapper.DEFAULT);
-            Set<? extends Principal> expected = pp.getPrincipals(USER_ID);
             assertEquals(3, expected.size());
             assertEquals(expected, ai.getPrincipals());
 
@@ -316,7 +308,6 @@ public abstract class LdapLoginTestBase 
         }
     }
 
-    @Ignore() // FIXME
     @Test
     public void testReLogin() throws Exception {
         ContentSession cs = null;
@@ -331,6 +322,7 @@ public abstract class LdapLoginTestBase 
             cs.close();
             // login again
             cs = login(new SimpleCredentials(USER_ID, USER_PWD.toCharArray()));
+            root.refresh();
             assertEquals(USER_ID, cs.getAuthInfo().getUserID());
         } finally {
             if (cs != null) {
@@ -340,33 +332,27 @@ public abstract class LdapLoginTestBase 
         }
     }
 
-    @Ignore // FIXME
     @Test
+    @Ignore("OAK-1541")
     public void testConcurrentLogin() throws Exception {
-        concurrentLogin(false);
+        concurrentLogin(CONCURRENT_TEST_USERS);
     }
 
-    @Ignore // FIXME
     @Test
+    @Ignore("OAK-1541")
     public void testConcurrentLoginSameGroup() throws Exception {
-        concurrentLogin(true);
+        concurrentLogin(CONCURRENT_GROUP_TEST_USERS);
     }
 
-    private void concurrentLogin(boolean sameGroup) throws Exception {
+    private void concurrentLogin(String [] users) throws Exception {
         final List<Exception> exceptions = new ArrayList<Exception>();
         List<Thread> workers = new ArrayList<Thread>();
-        for (int i = 0; i < CONCURRENT_LOGINS; i++) {
-            final String userId = "user-" + i;
-            final String pass = "secret";
-            String userDN = LDAP_SERVER.addUser(userId, "test", userId, pass);
-            if (sameGroup) {
-                LDAP_SERVER.addMember(GROUP_DN, userDN);
-            }
+        for (String userId: users) {
+            final String uid = userId;
             workers.add(new Thread(new Runnable() {
                 public void run() {
                     try {
-                        login(new SimpleCredentials(
-                                userId, pass.toCharArray())).close();
+                        login(new SimpleCredentials(uid, 
USER_PWD.toCharArray())).close();
                     } catch (Exception e) {
                         exceptions.add(e);
                     }
@@ -391,5 +377,15 @@ public abstract class LdapLoginTestBase 
         LDAP_SERVER.addMember(
                 GROUP_DN = LDAP_SERVER.addGroup(GROUP_NAME),
                 LDAP_SERVER.addUser(USER_FIRSTNAME, USER_LASTNAME, USER_ID, 
USER_PWD));
+        for (int i = 0; i < NUM_CONCURRENT_LOGINS * 2; i++) {
+            final String userId = "user-" + i;
+            String userDN = LDAP_SERVER.addUser(userId, "test", userId, 
USER_PWD);
+            if (i%2 == 0) {
+                CONCURRENT_GROUP_TEST_USERS[i/2] = userId;
+                LDAP_SERVER.addMember(GROUP_DN, userDN);
+            } else {
+                CONCURRENT_TEST_USERS[i/2] = userId;
+            }
+        }
     }
 }

Modified: 
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LdapProviderTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LdapProviderTest.java?rev=1577399&r1=1577398&r2=1577399&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LdapProviderTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LdapProviderTest.java
 Fri Mar 14 00:50:12 2014
@@ -31,7 +31,6 @@ import org.apache.jackrabbit.oak.securit
 import 
org.apache.jackrabbit.oak.security.authentication.ldap.impl.LdapProviderConfig;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalGroup;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentity;
-import 
org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentityException;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentityProvider;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentityRef;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalUser;
@@ -110,7 +109,9 @@ public class LdapProviderTest {
                 .setBaseDN(ServerDNConstants.GROUPS_SYSTEM_DN)
                 .setObjectClasses("groupOfUniqueNames");
 
-        return new LdapIdentityProvider(providerConfig);
+        LdapIdentityProvider ldapIDP = new 
LdapIdentityProvider(providerConfig);
+        ldapIDP.disableConnectionPooling = true;
+        return ldapIDP;
     }
 
     protected static void initLdapFixture(InternalLdapServer server) throws 
Exception {


Reply via email to