Author: baedke Date: Mon Feb 25 15:37:22 2013 New Revision: 1449751 URL: http://svn.apache.org/r1449751 Log: OAK-516: added test cases
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LdapLoginWithRepoLoginTest.java Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LdapLoginWithRepoLoginTest.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LdapLoginWithRepoLoginTest.java?rev=1449751&r1=1449750&r2=1449751&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LdapLoginWithRepoLoginTest.java (original) +++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LdapLoginWithRepoLoginTest.java Mon Feb 25 15:37:22 2013 @@ -17,11 +17,21 @@ package org.apache.jackrabbit.oak.security.authentication.ldap; import java.util.Collections; +import javax.jcr.SimpleCredentials; import javax.security.auth.login.AppConfigurationEntry; import javax.security.auth.login.Configuration; +import org.apache.jackrabbit.api.security.user.Authorizable; +import org.apache.jackrabbit.oak.api.ContentSession; import org.apache.jackrabbit.oak.security.authentication.user.LoginModuleImpl; +import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalLoginModule; +import org.apache.jackrabbit.oak.spi.security.authentication.external.SyncMode; import org.junit.Ignore; +import org.junit.Test; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; @Ignore //ignore for the moment because "mvn test" runs into PermGen memory issues public class LdapLoginWithRepoLoginTest extends LdapLoginTestBase { @@ -44,4 +54,99 @@ public class LdapLoginWithRepoLoginTest } }; } + + @Test + public void testSyncUpdateAndGroups() throws Exception { + + if (!USE_COMMON_LDAP_FIXTURE) { + createLdapFixture(); + } + + options.put(ExternalLoginModule.PARAM_SYNC_MODE, new String[]{SyncMode.UPDATE, SyncMode.CREATE_GROUP}); + + // create user upfront in order to test update mode + userManager.createUser(USER_ID, USER_PWD); + root.commit(); + + ContentSession cs = null; + try { + cs = login(new SimpleCredentials(USER_ID, USER_PWD.toCharArray())); + + root.refresh(); + Authorizable user = userManager.getAuthorizable(USER_ID); + assertNotNull(user); + //verify that nothing was synced because LoginModuleImpl handled the login + assertFalse(user.hasProperty(USER_PROP)); + Authorizable group = userManager.getAuthorizable(GROUP_DN); + assertNull(group); + } finally { + if (cs != null) { + cs.close(); + } + options.clear(); + } + } + + @Test + public void testDefaultSync() throws Exception { + + if (!USE_COMMON_LDAP_FIXTURE) { + createLdapFixture(); + } + + options.put(ExternalLoginModule.PARAM_SYNC_MODE, null); + + // create user upfront in order to test update mode + userManager.createUser(USER_ID, USER_PWD); + root.commit(); + + ContentSession cs = null; + try { + cs = login(new SimpleCredentials(USER_ID, USER_PWD.toCharArray())); + + root.refresh(); + Authorizable user = userManager.getAuthorizable(USER_ID); + assertNotNull(user); + //verify that nothing was synced because LoginModuleImpl handled the login + assertFalse(user.hasProperty(USER_PROP)); + Authorizable group = userManager.getAuthorizable(GROUP_DN); + assertNull(group); + } finally { + if (cs != null) { + cs.close(); + } + options.clear(); + } + } + + @Test + public void testSyncUpdate() throws Exception { + + if (!USE_COMMON_LDAP_FIXTURE) { + createLdapFixture(); + } + + options.put(ExternalLoginModule.PARAM_SYNC_MODE, SyncMode.UPDATE); + + // create user upfront in order to test update mode + userManager.createUser(USER_ID, USER_PWD); + root.commit(); + + ContentSession cs = null; + try { + cs = login(new SimpleCredentials(USER_ID, USER_PWD.toCharArray())); + + root.refresh(); + Authorizable user = userManager.getAuthorizable(USER_ID); + assertNotNull(user); + //verify that nothing was synced because LoginModuleImpl handled the login + assertFalse(user.hasProperty(USER_PROP)); + assertNull(userManager.getAuthorizable(GROUP_DN)); + } finally { + if (cs != null) { + cs.close(); + } + options.clear(); + } + } }