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 an...@apache.org on 2019/11/01 10:23:28 UTC

svn commit: r1869241 - in /jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external: ./ basic/ impl/ impl/jmx/ impl/principal/

Author: angela
Date: Fri Nov  1 10:23:28 2019
New Revision: 1869241

URL: http://svn.apache.org/viewvc?rev=1869241&view=rev
Log:
OAK-8725 : Improve tests for oak-external-auth (wip)

Added:
    jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalLoginTestBase.java
      - copied, changed from r1869240, jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalLoginModuleTestBase.java
Removed:
    jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalLoginModuleTestBase.java
Modified:
    jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/AbstractExternalAuthTest.java
    jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalLoginModuleAutoMembershipTest.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/PreAuthDefaultExternalLoginModuleTest.java
    jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/RepExternalIdTest.java
    jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/CustomCredentialsSupportTest.java
    jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DefaultSyncHandlerTest.java
    jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/ExternalLoginModuleFactoryTest.java
    jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/SynMBeanImplOSGiTest.java
    jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalIdentityValidatorTest.java

Modified: jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/AbstractExternalAuthTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/AbstractExternalAuthTest.java?rev=1869241&r1=1869240&r2=1869241&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/AbstractExternalAuthTest.java (original)
+++ jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/AbstractExternalAuthTest.java Fri Nov  1 10:23:28 2019
@@ -35,6 +35,7 @@ import org.apache.jackrabbit.api.securit
 import org.apache.jackrabbit.api.security.user.User;
 import org.apache.jackrabbit.api.security.user.UserManager;
 import org.apache.jackrabbit.oak.AbstractSecurityTest;
+import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.ContentSession;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Root;
@@ -52,6 +53,8 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
 
+import static org.junit.Assert.assertEquals;
+
 /**
  * Abstract base test for external-authentication tests.
  */
@@ -115,6 +118,12 @@ public abstract class AbstractExternalAu
         }
     }
 
+    protected static void assertException(@NotNull CommitFailedException e, @NotNull String expectedType, int expectedCode) throws CommitFailedException {
+        assertEquals(expectedType, e.getType());
+        assertEquals(expectedCode, e.getCode());
+        throw e;
+    }
+
     private static Iterator<String> getAllAuthorizableIds(@NotNull UserManager userManager) throws Exception {
         Iterator<Authorizable> iter = userManager.findAuthorizables("jcr:primaryType", null);
         return Iterators.filter(Iterators.transform(iter, new Function<Authorizable, String>() {

Modified: jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalLoginModuleAutoMembershipTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalLoginModuleAutoMembershipTest.java?rev=1869241&r1=1869240&r2=1869241&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalLoginModuleAutoMembershipTest.java (original)
+++ jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalLoginModuleAutoMembershipTest.java Fri Nov  1 10:23:28 2019
@@ -53,7 +53,7 @@ import static org.junit.Assert.assertNot
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-public class ExternalLoginModuleAutoMembershipTest extends ExternalLoginModuleTestBase {
+public class ExternalLoginModuleAutoMembershipTest extends ExternalLoginTestBase {
 
     private static final String NON_EXISTING_NAME = "nonExisting";
 

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=1869241&r1=1869240&r2=1869241&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 Nov  1 10:23:28 2019
@@ -16,6 +16,7 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authentication.external;
 
+import javax.jcr.RepositoryException;
 import javax.jcr.SimpleCredentials;
 import javax.security.auth.login.LoginException;
 
@@ -23,6 +24,7 @@ import org.apache.jackrabbit.api.securit
 import org.apache.jackrabbit.api.security.user.UserManager;
 import org.apache.jackrabbit.oak.api.ContentSession;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.basic.DefaultSyncContext;
+import org.jetbrains.annotations.NotNull;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -36,7 +38,7 @@ import static org.junit.Assert.fail;
 /**
  * ExternalLoginModuleTest...
  */
-public class ExternalLoginModuleTest extends ExternalLoginModuleTestBase {
+public class ExternalLoginModuleTest extends ExternalLoginTestBase {
 
     @Before
     public void before() throws Exception {
@@ -45,18 +47,14 @@ public class ExternalLoginModuleTest ext
 
     @After
     public void after() throws Exception {
+        options.clear();
         super.after();
     }
 
-    @Test
+    @Test(expected = LoginException.class)
     public void testLoginFailed() throws Exception {
         UserManager userManager = getUserManager(root);
-        try {
-            ContentSession cs = login(new SimpleCredentials("unknown", new char[0]));
-            cs.close();
-            fail("login failure expected");
-        } catch (LoginException e) {
-            // success
+        try (ContentSession cs = login(new SimpleCredentials("unknown", new char[0]))) {
         } finally {
             assertNull(userManager.getAuthorizable(USER_ID));
         }
@@ -65,62 +63,39 @@ public class ExternalLoginModuleTest ext
     @Test
     public void testSyncCreateUser() throws Exception {
         UserManager userManager = getUserManager(root);
-        ContentSession cs = null;
-        try {
-            assertNull(userManager.getAuthorizable(USER_ID));
-
-            cs = login(new SimpleCredentials(USER_ID, new char[0]));
+        assertNull(userManager.getAuthorizable(USER_ID));
 
+        try (ContentSession cs = login(new SimpleCredentials(USER_ID, new char[0]))) {
             root.refresh();
-
-            Authorizable a = userManager.getAuthorizable(USER_ID);
-            assertNotNull(a);
-            ExternalUser user = idp.getUser(USER_ID);
-            for (String prop : user.getProperties().keySet()) {
-                assertTrue(a.hasProperty(prop));
-            }
-            assertEquals(TEST_CONSTANT_PROPERTY_VALUE, a.getProperty(TEST_CONSTANT_PROPERTY_NAME)[0].getString());
-        } finally {
-            if (cs != null) {
-                cs.close();
-            }
-            options.clear();
+            assertUser(userManager, idp);
         }
     }
 
     @Test
     public void testSyncCreateUserCaseInsensitive() throws Exception {
         UserManager userManager = getUserManager(root);
-        ContentSession cs = null;
-        try {
-            assertNull(userManager.getAuthorizable(USER_ID));
-
-            cs = login(new SimpleCredentials(USER_ID.toUpperCase(), new char[0]));
+        assertNull(userManager.getAuthorizable(USER_ID));
 
+        try (ContentSession cs = login(new SimpleCredentials(USER_ID.toUpperCase(), new char[0]))) {
             root.refresh();
+            assertUser(userManager, idp);
+        }
+    }
 
-            Authorizable a = userManager.getAuthorizable(USER_ID);
-            assertNotNull(a);
-            ExternalUser user = idp.getUser(USER_ID);
-            for (String prop : user.getProperties().keySet()) {
-                assertTrue(a.hasProperty(prop));
-            }
-            assertEquals(TEST_CONSTANT_PROPERTY_VALUE, a.getProperty(TEST_CONSTANT_PROPERTY_NAME)[0].getString());
-        } finally {
-            if (cs != null) {
-                cs.close();
-            }
-            options.clear();
+    private static void assertUser(@NotNull UserManager userManager, @NotNull ExternalIdentityProvider idp) throws Exception {
+        Authorizable a = userManager.getAuthorizable(USER_ID);
+        assertNotNull(a);
+        ExternalUser user = idp.getUser(USER_ID);
+        for (String prop : user.getProperties().keySet()) {
+            assertTrue(a.hasProperty(prop));
         }
+        assertEquals(TEST_CONSTANT_PROPERTY_VALUE, a.getProperty(TEST_CONSTANT_PROPERTY_NAME)[0].getString());
     }
 
     @Test
     public void testSyncCreateGroup() throws Exception {
         UserManager userManager = getUserManager(root);
-        ContentSession cs = null;
-        try {
-            cs = login(new SimpleCredentials(USER_ID, new char[0]));
-
+        try (ContentSession cs = login(new SimpleCredentials(USER_ID, new char[0]))) {
             root.refresh();
             for (String id : new String[]{"a", "b", "c"}) {
                 assertNotNull(userManager.getAuthorizable(id));
@@ -128,11 +103,6 @@ public class ExternalLoginModuleTest ext
             for (String id : new String[]{"aa", "aaa"}) {
                 assertNull(userManager.getAuthorizable(id));
             }
-        } finally {
-            if (cs != null) {
-                cs.close();
-            }
-            options.clear();
         }
     }
 
@@ -140,19 +110,11 @@ public class ExternalLoginModuleTest ext
     public void testSyncCreateGroupNesting() throws Exception {
         syncConfig.user().setMembershipNestingDepth(2);
         UserManager userManager = getUserManager(root);
-        ContentSession cs = null;
-        try {
-            cs = login(new SimpleCredentials(USER_ID, new char[0]));
-
+        try (ContentSession cs = login(new SimpleCredentials(USER_ID, new char[0]))) {
             root.refresh();
             for (String id : new String[]{"a", "b", "c", "aa", "aaa"}) {
                 assertNotNull(userManager.getAuthorizable(id));
             }
-        } finally {
-            if (cs != null) {
-                cs.close();
-            }
-            options.clear();
         }
     }
 
@@ -165,22 +127,9 @@ public class ExternalLoginModuleTest ext
         user.setProperty(DefaultSyncContext.REP_EXTERNAL_ID, getValueFactory().createValue(externalUser.getExternalId().getString()));
         root.commit();
 
-        ContentSession cs = null;
-        try {
-            cs = login(new SimpleCredentials(USER_ID, new char[0]));
-
+        try (ContentSession cs = login(new SimpleCredentials(USER_ID, new char[0]))) {
             root.refresh();
-
-            Authorizable a = userManager.getAuthorizable(USER_ID);
-            assertNotNull(a);
-            for (String prop : externalUser.getProperties().keySet()) {
-                assertTrue(a.hasProperty(prop));
-            }
-        } finally {
-            if (cs != null) {
-                cs.close();
-            }
-            options.clear();
+            assertUser(userManager, idp);
         }
     }
 

Copied: jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalLoginTestBase.java (from r1869240, 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/ExternalLoginTestBase.java?p2=jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalLoginTestBase.java&p1=jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/ExternalLoginModuleTestBase.java&r1=1869240&r2=1869241&rev=1869241&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/ExternalLoginTestBase.java Fri Nov  1 10:23:28 2019
@@ -37,7 +37,7 @@ import org.junit.Before;
  * Abstract base test for external-authentication including proper OSGi service
  * registrations required for repository login respecting the {@link ExternalLoginModule}.
  */
-public abstract class ExternalLoginModuleTestBase extends AbstractExternalAuthTest {
+public abstract class ExternalLoginTestBase extends AbstractExternalAuthTest {
 
     private Registration testIdpReg;
     private Registration syncHandlerReg;
@@ -48,8 +48,6 @@ public abstract class ExternalLoginModul
 
     protected SyncManager syncManager;
 
-    protected ExternalIdentityProviderManager idpManager;
-
     @Before
     public void before() throws Exception {
         super.before();
@@ -83,7 +81,7 @@ public abstract class ExternalLoginModul
         whiteboard = oak.getWhiteboard();
         syncManager = new SyncManagerImpl(whiteboard);
         whiteboard.register(SyncManager.class, syncManager, Collections.emptyMap());
-        idpManager = new ExternalIDPManagerImpl(whiteboard);
+        ExternalIdentityProviderManager idpManager = new ExternalIDPManagerImpl(whiteboard);
         whiteboard.register(ExternalIdentityProviderManager.class, idpManager, Collections.emptyMap());
 
         return oak;

Modified: jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/PreAuthDefaultExternalLoginModuleTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/PreAuthDefaultExternalLoginModuleTest.java?rev=1869241&r1=1869240&r2=1869241&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/PreAuthDefaultExternalLoginModuleTest.java (original)
+++ jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/PreAuthDefaultExternalLoginModuleTest.java Fri Nov  1 10:23:28 2019
@@ -16,15 +16,6 @@
  */
 package org.apache.jackrabbit.oak.spi.security.authentication.external;
 
-import java.util.HashMap;
-import java.util.Map;
-import javax.jcr.Credentials;
-import javax.jcr.GuestCredentials;
-import javax.jcr.SimpleCredentials;
-import javax.security.auth.login.AppConfigurationEntry;
-import javax.security.auth.login.Configuration;
-import javax.security.auth.login.LoginException;
-
 import org.apache.jackrabbit.api.security.user.User;
 import org.apache.jackrabbit.api.security.user.UserManager;
 import org.apache.jackrabbit.oak.api.ContentSession;
@@ -36,16 +27,24 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
+import javax.jcr.Credentials;
+import javax.jcr.GuestCredentials;
+import javax.jcr.SimpleCredentials;
+import javax.security.auth.login.AppConfigurationEntry;
+import javax.security.auth.login.Configuration;
+import javax.security.auth.login.LoginException;
+import java.util.HashMap;
+import java.util.Map;
+
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
-import static org.junit.Assert.fail;
 
 /**
  * Testing improvements made for <a href="https://issues.apache.org/jira/browse/OAK-3508">OAK-3508</a>
  */
-public class PreAuthDefaultExternalLoginModuleTest extends ExternalLoginModuleTestBase {
+public class PreAuthDefaultExternalLoginModuleTest extends ExternalLoginTestBase {
 
     private Map<String, Object> preAuthOptions = new HashMap<>();
 
@@ -93,20 +92,12 @@ public class PreAuthDefaultExternalLogin
         };
     }
 
-    @Test
+    @Test(expected = LoginException.class)
     public void testNonExistingUser() throws Exception {
         PreAuthCredentials creds = new PreAuthCredentials("nonExisting");
 
-        ContentSession cs = null;
-        try {
-            cs = login(creds);
-            fail();
-        } catch (LoginException e) {
-            // success
+        try (ContentSession cs = login(creds)){
         } finally {
-            if (cs != null) {
-                cs.close();
-            }
             assertEquals(PreAuthCredentials.PRE_AUTH_DONE, creds.getMessage());
 
             root.refresh();
@@ -118,38 +109,22 @@ public class PreAuthDefaultExternalLogin
     public void testLocalUser() throws Exception {
         User testUser = getTestUser();
         PreAuthCredentials creds = new PreAuthCredentials(testUser.getID());
-
-        ContentSession cs = null;
-        try {
-            cs = login(creds);
-
+        try (ContentSession cs = login(creds)){
             assertEquals(PreAuthCredentials.PRE_AUTH_DONE, creds.getMessage());
             assertEquals(testUser.getID(), cs.getAuthInfo().getUserID());
-        } finally {
-            if (cs != null) {
-                cs.close();
-            }
         }
     }
 
     @Test
     public void testExternalUser() throws Exception {
         PreAuthCredentials creds = new PreAuthCredentials(TestIdentityProvider.ID_TEST_USER);
-
-        ContentSession cs = null;
-        try {
-            cs = login(creds);
-
+        try (ContentSession cs = login(creds)){
             assertEquals(PreAuthCredentials.PRE_AUTH_DONE, creds.getMessage());
             assertEquals(TestIdentityProvider.ID_TEST_USER, cs.getAuthInfo().getUserID());
 
             // user needs to be synchronized upon login
             root.refresh();
             assertNotNull(getUserManager(root).getAuthorizable(TestIdentityProvider.ID_TEST_USER));
-        } finally {
-            if (cs != null) {
-                cs.close();
-            }
         }
     }
 
@@ -162,14 +137,11 @@ public class PreAuthDefaultExternalLogin
         long lastSynced = result.getIdentity().lastSynced();
         root.commit();
 
-        PreAuthCredentials creds = new PreAuthCredentials(TestIdentityProvider.ID_TEST_USER);
-        ContentSession cs = null;
-        try {
-            // wait until the synced user is expired
-            waitUntilExpired(uMgr.getAuthorizable(TestIdentityProvider.ID_TEST_USER, User.class), root, syncConfig.user().getExpirationTime());
-
-            cs = login(creds);
+        // wait until the synced user is expired
+        waitUntilExpired(uMgr.getAuthorizable(TestIdentityProvider.ID_TEST_USER, User.class), root, syncConfig.user().getExpirationTime());
 
+        PreAuthCredentials creds = new PreAuthCredentials(TestIdentityProvider.ID_TEST_USER);
+        try (ContentSession cs = login(creds)){
             assertEquals(PreAuthCredentials.PRE_AUTH_DONE, creds.getMessage());
             assertEquals(TestIdentityProvider.ID_TEST_USER, cs.getAuthInfo().getUserID());
 
@@ -178,11 +150,7 @@ public class PreAuthDefaultExternalLogin
             assertNotNull(u);
 
             // user _should_ be re-synced
-            assertFalse(lastSynced == DefaultSyncContext.createSyncedIdentity(u).lastSynced());
-        } finally {
-            if (cs != null) {
-                cs.close();
-            }
+            assertNotEquals(lastSynced, DefaultSyncContext.createSyncedIdentity(u).lastSynced());
         }
     }
 
@@ -198,10 +166,7 @@ public class PreAuthDefaultExternalLogin
         root.commit();
 
         PreAuthCredentials creds = new PreAuthCredentials(TestIdentityProvider.ID_TEST_USER);
-        ContentSession cs = null;
-        try {
-            cs = login(creds);
-
+        try (ContentSession cs = login(creds)){
             assertEquals(PreAuthCredentials.PRE_AUTH_DONE, creds.getMessage());
             assertEquals(TestIdentityProvider.ID_TEST_USER, cs.getAuthInfo().getUserID());
 
@@ -211,10 +176,6 @@ public class PreAuthDefaultExternalLogin
 
             // user _should_ not have been re-synced
             assertEquals(lastSynced, DefaultSyncContext.createSyncedIdentity(u).lastSynced());
-        } finally {
-            if (cs != null) {
-                cs.close();
-            }
         }
     }
 
@@ -230,11 +191,9 @@ public class PreAuthDefaultExternalLogin
         root.commit();
 
         PreAuthCredentials creds = new PreAuthCredentials(TestIdentityProvider.ID_TEST_USER);
-        ContentSession cs = null;
-        try {
-            // login should succeed due the fact that the  _LoginModuleImpl_ succeeds for
-            // an existing authorizable if _pre_auth_ is enabled.
-            cs = login(creds);
+        // login should succeed due the fact that the  _LoginModuleImpl_ succeeds for
+        // an existing authorizable if _pre_auth_ is enabled.
+        try (ContentSession cs = login(creds)){
 
             assertEquals(PreAuthCredentials.PRE_AUTH_DONE, creds.getMessage());
 
@@ -244,27 +203,14 @@ public class PreAuthDefaultExternalLogin
             assertNotNull(u);
 
             assertEquals(lastSynced, DefaultSyncContext.createSyncedIdentity(u).lastSynced());
-        } finally {
-            if (cs != null) {
-                cs.close();
-            }
-
         }
     }
 
-    @Test
+    @Test(expected = LoginException.class)
     public void testInvalidPreAuthCreds() throws Exception {
         PreAuthCredentials creds = new PreAuthCredentials(null);
-        ContentSession cs = null;
-        try {
-            cs = login(creds);
-            fail();
-        } catch (LoginException e) {
-            // success
+        try (ContentSession cs = login(creds)){
         } finally {
-            if (cs != null) {
-                cs.close();
-            }
             assertEquals(PreAuthCredentials.PRE_AUTH_FAIL, creds.getMessage());
 
             root.refresh();
@@ -274,62 +220,32 @@ public class PreAuthDefaultExternalLogin
 
     @Test
     public void testGuest() throws Exception {
-        ContentSession cs = null;
-        try {
-            cs = login(new GuestCredentials());
+        try (ContentSession cs = login(new GuestCredentials())){
             assertEquals(UserConstants.DEFAULT_ANONYMOUS_ID, cs.getAuthInfo().getUserID());
-        } finally {
-            if (cs != null) {
-                cs.close();
-            }
         }
     }
 
     @Test
     public void testSimpleLocal() throws Exception {
         User testUser = getTestUser();
-        ContentSession cs = null;
-        try {
-            cs = login(new SimpleCredentials(testUser.getID(), testUser.getID().toCharArray()));
+        try (ContentSession cs = login(new SimpleCredentials(testUser.getID(), testUser.getID().toCharArray()))){
             assertEquals(testUser.getID(), cs.getAuthInfo().getUserID());
-        } finally {
-            if (cs != null) {
-                cs.close();
-            }
         }
     }
 
-    @Test
+    @Test(expected = LoginException.class)
     public void testSimpleLocalDisabled() throws Exception {
         User testUser = getTestUser();
         testUser.disable("disable");
         root.commit();
 
-        ContentSession cs = null;
-        try {
-            cs = login(new SimpleCredentials(testUser.getID(), testUser.getID().toCharArray()));
-            fail();
-        } catch (LoginException e) {
-            // success
-        } finally {
-            if (cs != null) {
-                cs.close();
-            }
+        try (ContentSession cs = login(new SimpleCredentials(testUser.getID(), testUser.getID().toCharArray()))) {
         }
     }
 
-    @Test
+    @Test(expected = LoginException.class)
     public void testSimpleNonExisting() throws Exception {
-        ContentSession cs = null;
-        try {
-            cs = login(new SimpleCredentials("nonExisting", new char[0]));
-            fail();
-        } catch (LoginException e) {
-            // success
-        } finally {
-            if (cs != null) {
-                cs.close();
-            }
+        try (ContentSession cs = login(new SimpleCredentials("nonExisting", new char[0]))) {
         }
     }
 
@@ -342,18 +258,12 @@ public class PreAuthDefaultExternalLogin
         assertEquals(TestIdentityProvider.ID_TEST_USER, externalUser.getId());
 
         // => repo login must also succeed and the user must be synced.
-        ContentSession cs = null;
-        try {
-            cs = login(creds);
+        try (ContentSession cs = login(creds)) {
             assertEquals(TestIdentityProvider.ID_TEST_USER, cs.getAuthInfo().getUserID());
 
             root.refresh();
             User u = getUserManager(root).getAuthorizable(TestIdentityProvider.ID_TEST_USER, User.class);
             assertNotNull(u);
-        } finally {
-            if (cs != null) {
-                cs.close();
-            }
         }
     }
 }

Modified: jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/RepExternalIdTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/RepExternalIdTest.java?rev=1869241&r1=1869240&r2=1869241&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/RepExternalIdTest.java (original)
+++ jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/basic/RepExternalIdTest.java Fri Nov  1 10:23:28 2019
@@ -31,6 +31,7 @@ import org.jetbrains.annotations.NotNull
 import org.junit.Before;
 import org.junit.Test;
 
+import static org.apache.jackrabbit.oak.api.CommitFailedException.CONSTRAINT;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -95,7 +96,7 @@ public class RepExternalIdTest extends A
         assertRepExternalId(res);
     }
 
-    @Test
+    @Test(expected = CommitFailedException.class)
     public void testUniqueConstraint() throws Exception {
         SyncResult res = syncCtx.sync(idp.getUser(USER_ID));
 
@@ -106,14 +107,13 @@ public class RepExternalIdTest extends A
             fail("Duplicate value for rep:externalId must be detected in the default setup.");
         } catch (CommitFailedException e) {
             // success: verify nature of the exception
-            assertTrue(e.isConstraintViolation());
-            assertEquals(30, e.getCode());
+            assertException(e, CONSTRAINT, 30);
         } finally {
             r.refresh();
         }
     }
 
-    @Test
+    @Test(expected = CommitFailedException.class)
     public void testUniqueConstraintSubsequentCommit() throws Exception {
         SyncResult res = syncCtx.sync(idp.getUser(USER_ID));
         r.commit();
@@ -125,14 +125,13 @@ public class RepExternalIdTest extends A
             fail("Duplicate value for rep:externalId must be detected in the default setup.");
         } catch (CommitFailedException e) {
             // success: verify nature of the exception
-            assertTrue(e.isConstraintViolation());
-            assertEquals(30, e.getCode());
+            assertException(e, CONSTRAINT, 30);
         } finally {
             r.refresh();
         }
     }
 
-    @Test
+    @Test(expected = CommitFailedException.class)
     public void testUniqueConstraintNonUserNode() throws Exception {
         try {
             SyncResult res = syncCtx.sync(idp.getUser(USER_ID));
@@ -143,8 +142,7 @@ public class RepExternalIdTest extends A
             fail("Duplicate value for rep:externalId must be detected in the default setup.");
         } catch (CommitFailedException e) {
             // success: verify nature of the exception
-            assertTrue(e.isConstraintViolation());
-            assertEquals(30, e.getCode());
+            assertException(e, CONSTRAINT, 30);
         } finally {
             r.refresh();
         }

Modified: jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/CustomCredentialsSupportTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/CustomCredentialsSupportTest.java?rev=1869241&r1=1869240&r2=1869241&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/CustomCredentialsSupportTest.java (original)
+++ jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/CustomCredentialsSupportTest.java Fri Nov  1 10:23:28 2019
@@ -36,7 +36,7 @@ import org.apache.jackrabbit.oak.spi.sec
 import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentity;
 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.ExternalLoginModuleTestBase;
+import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalLoginTestBase;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalUser;
 import org.apache.jackrabbit.oak.spi.security.authentication.credentials.CredentialsSupport;
 import org.jetbrains.annotations.NotNull;
@@ -51,7 +51,7 @@ import static org.junit.Assert.fail;
  * a custom implementation of {@link CredentialsSupport} and an {@link ExternalIdentityProvider}
  * that deals with these supported credentials.
  */
-public class CustomCredentialsSupportTest extends ExternalLoginModuleTestBase {
+public class CustomCredentialsSupportTest extends ExternalLoginTestBase {
 
     private static void assertAttributes(@NotNull Map<String, ?> expected, @NotNull AuthInfo info) {
         assertEquals(expected.size(), info.getAttributeNames().length);

Modified: jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DefaultSyncHandlerTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DefaultSyncHandlerTest.java?rev=1869241&r1=1869240&r2=1869241&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DefaultSyncHandlerTest.java (original)
+++ jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/DefaultSyncHandlerTest.java Fri Nov  1 10:23:28 2019
@@ -31,7 +31,7 @@ import org.apache.jackrabbit.api.securit
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentity;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentityRef;
-import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalLoginModuleTestBase;
+import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalLoginTestBase;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.SyncContext;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.SyncHandler;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.SyncResult;
@@ -57,7 +57,7 @@ import static org.mockito.Mockito.when;
 /**
  * DefaultSyncHandlerTest
  */
-public class DefaultSyncHandlerTest extends ExternalLoginModuleTestBase {
+public class DefaultSyncHandlerTest extends ExternalLoginTestBase {
 
     private UserManager userManager;
     private DefaultSyncHandler syncHandler;

Modified: jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/ExternalLoginModuleFactoryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/ExternalLoginModuleFactoryTest.java?rev=1869241&r1=1869240&r2=1869241&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/ExternalLoginModuleFactoryTest.java (original)
+++ jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/ExternalLoginModuleFactoryTest.java Fri Nov  1 10:23:28 2019
@@ -26,7 +26,7 @@ import org.apache.jackrabbit.api.securit
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.api.ContentSession;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentityProviderManager;
-import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalLoginModuleTestBase;
+import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalLoginTestBase;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalUser;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.SyncManager;
 import org.apache.jackrabbit.oak.spi.whiteboard.Registration;
@@ -46,7 +46,7 @@ import static org.junit.Assert.assertSam
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 
-public class ExternalLoginModuleFactoryTest extends ExternalLoginModuleTestBase {
+public class ExternalLoginModuleFactoryTest extends ExternalLoginTestBase {
 
     @Override
     protected Oak withEditors(Oak oak) {

Modified: jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/SynMBeanImplOSGiTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/SynMBeanImplOSGiTest.java?rev=1869241&r1=1869240&r2=1869241&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/SynMBeanImplOSGiTest.java (original)
+++ jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/SynMBeanImplOSGiTest.java Fri Nov  1 10:23:28 2019
@@ -25,7 +25,7 @@ import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.api.ContentRepository;
 import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentityProviderManager;
-import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalLoginModuleTestBase;
+import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalLoginTestBase;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.SyncManager;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalIDPManagerImpl;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalLoginModuleFactory;
@@ -36,7 +36,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
-public class SynMBeanImplOSGiTest extends ExternalLoginModuleTestBase {
+public class SynMBeanImplOSGiTest extends ExternalLoginTestBase {
 
     private ExternalLoginModuleFactory externalLoginModuleFactory;
 

Modified: jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalIdentityValidatorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalIdentityValidatorTest.java?rev=1869241&r1=1869240&r2=1869241&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalIdentityValidatorTest.java (original)
+++ jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalIdentityValidatorTest.java Fri Nov  1 10:23:28 2019
@@ -30,7 +30,7 @@ import org.apache.jackrabbit.oak.api.Roo
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.spi.commit.Validator;
-import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalLoginModuleTestBase;
+import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalLoginTestBase;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.TestIdentityProvider;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.basic.DefaultSyncConfig;
 import org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalIdentityConstants;
@@ -49,7 +49,7 @@ import static org.junit.Assert.fail;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-public class ExternalIdentityValidatorTest extends ExternalLoginModuleTestBase {
+public class ExternalIdentityValidatorTest extends ExternalLoginTestBase {
 
     String testUserPath;
     String externalUserPath;
@@ -82,12 +82,6 @@ public class ExternalIdentityValidatorTe
         return true;
     }
 
-    static void assertException(@NotNull CommitFailedException e, @NotNull String expectedType, int expectedCode) throws CommitFailedException {
-        assertEquals(expectedType, e.getType());
-        assertEquals(expectedCode, e.getCode());
-        throw e;
-    }
-
     @Test(expected = CommitFailedException.class)
     public void testAddExternalPrincipalNames() throws Exception {
         Tree userTree = root.getTree(testUserPath);