You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ba...@apache.org on 2013/02/25 16:37:23 UTC
svn commit: r1449751 -
/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LdapLoginWithRepoLoginTest.java
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();
+ }
+ }
}