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 2016/05/11 12:55:11 UTC

svn commit: r1743351 - in /jackrabbit/oak/trunk/oak-auth-external/src: main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/ test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/

Author: angela
Date: Wed May 11 12:55:11 2016
New Revision: 1743351

URL: http://svn.apache.org/viewvc?rev=1743351&view=rev
Log:
OAK-4346 : SyncMBeanImpl.syncExternalUsers doesn't check for foreign IDP

Modified:
    jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/Delegatee.java
    jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/SyncMBeanImplTest.java

Modified: jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/Delegatee.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/jmx/Delegatee.java?rev=1743351&r1=1743350&r2=1743351&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/Delegatee.java (original)
+++ jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/Delegatee.java Wed May 11 12:55:11 2016
@@ -173,24 +173,28 @@ final class Delegatee {
         context.setForceGroupSync(forceGroupSync).setForceUserSync(true);
         for (String externalId : externalIds) {
             ExternalIdentityRef ref = ExternalIdentityRef.fromString(externalId);
-            try {
-                ExternalIdentity id = idp.getIdentity(ref);
-                SyncResult r;
-                if (id != null) {
-                    r = syncUser(id);
-                } else {
-                    r = new DefaultSyncResultImpl(
-                            new DefaultSyncedIdentity("", ref, false, -1),
-                            SyncResult.Status.NO_SUCH_IDENTITY
-                    );
+            if (!idp.getName().equals(ref.getProviderName())) {
+                append(list, new DefaultSyncResultImpl(new DefaultSyncedIdentity(ref.getId(), ref, false, -1), SyncResult.Status.FOREIGN));
+            } else {
+                try {
+                    ExternalIdentity id = idp.getIdentity(ref);
+                    SyncResult r;
+                    if (id != null) {
+                        r = syncUser(id);
+                    } else {
+                        r = new DefaultSyncResultImpl(
+                                new DefaultSyncedIdentity("", ref, false, -1),
+                                SyncResult.Status.NO_SUCH_IDENTITY
+                        );
+                    }
+                    append(list, r);
+                } catch (ExternalIdentityException e) {
+                    log.warn("error while fetching the external identity {}", externalId, e);
+                    append(list, ref, e);
+                } catch (SyncException e) {
+                    log.error(ERROR_SYNC_USER, ref, e);
+                    append(list, ref, e);
                 }
-                append(list, r);
-            } catch (ExternalIdentityException e) {
-                log.warn("error while fetching the external identity {}", externalId, e);
-                append(list, ref, e);
-            } catch (SyncException e) {
-                log.error(ERROR_SYNC_USER, ref, e);
-                append(list, ref, e);
             }
         }
         return list.toArray(new String[list.size()]);

Modified: jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/SyncMBeanImplTest.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/SyncMBeanImplTest.java?rev=1743351&r1=1743350&r2=1743351&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/SyncMBeanImplTest.java (original)
+++ jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/SyncMBeanImplTest.java Wed May 11 12:55:11 2016
@@ -492,7 +492,6 @@ public class SyncMBeanImplTest {
     /**
      * @see <a href="https://issues.apache.org/jira/browse/OAK-4346">OAK-4346</a>
      */
-    @Ignore("OAK-4346")
     @Test
     public void testSyncExternalLocal() throws Exception {
         ExternalIdentityRef ref = new ExternalIdentityRef(UserConstants.DEFAULT_ANONYMOUS_ID, null);
@@ -504,7 +503,6 @@ public class SyncMBeanImplTest {
     /**
      * @see <a href="https://issues.apache.org/jira/browse/OAK-4346">OAK-4346</a>
      */
-    @Ignore("OAK-4346")
     @Test
     public void testSyncExternalForeign() throws Exception {
         ExternalIdentityRef ref = new ExternalIdentityRef(TestIdentityProvider.ID_TEST_USER, "anotherIDP");
@@ -518,7 +516,7 @@ public class SyncMBeanImplTest {
 
     @Test
     public void testSyncExternalUserException() throws Exception {
-        String[] result = syncMBean.syncExternalUsers(new String[] {TestIdentityProvider.ID_EXCEPTION});
+        String[] result = syncMBean.syncExternalUsers(new String[] {new ExternalIdentityRef(TestIdentityProvider.ID_EXCEPTION, idp.getName()).getString()});
         assertResultMessages(result, 1, "ERR");
     }