Author: baedke Date: Wed Mar 30 18:20:29 2016 New Revision: 1737141 URL: http://svn.apache.org/viewvc?rev=1737141&view=rev Log: OAK-4154: SynchronizationMBean.syncUsers(...) should optionally not force group sync.
Added additional method signatures to SynchronizationMBean. 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/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/SyncMBeanImpl.java jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/SynchronizationMBean.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=1737141&r1=1737140&r2=1737141&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 Mar 30 18:20:29 2016 @@ -117,12 +117,12 @@ final class Delegatee { } /** - * @see SynchronizationMBean#syncUsers(String[], boolean) + * @see SynchronizationMBean#syncUsers(String[], boolean, boolean) */ @Nonnull - String[] syncUsers(@Nonnull String[] userIds, boolean purge) { + String[] syncUsers(@Nonnull String[] userIds, boolean purge, boolean forceGroupSync) { context.setKeepMissing(!purge) - .setForceGroupSync(true) + .setForceGroupSync(forceGroupSync) .setForceUserSync(true); List<String> list = new ArrayList<String>(); for (String userId: userIds) { @@ -136,14 +136,14 @@ final class Delegatee { } /** - * @see SynchronizationMBean#syncAllUsers(boolean) + * @see SynchronizationMBean#syncAllUsers(boolean, boolean) */ @Nonnull - String[] syncAllUsers(boolean purge) { + String[] syncAllUsers(boolean purge, boolean forceGroupSync) { try { List<String> list = new ArrayList<String>(); context.setKeepMissing(!purge) - .setForceGroupSync(true) + .setForceGroupSync(forceGroupSync) .setForceUserSync(true); Iterator<SyncedIdentity> iter = handler.listIdentities(userMgr); while (iter.hasNext()) { @@ -164,12 +164,12 @@ final class Delegatee { } /** - * @see SynchronizationMBean#syncExternalUsers(String[]) + * @see SynchronizationMBean#syncExternalUsers(String[], boolean) */ @Nonnull - String[] syncExternalUsers(@Nonnull String[] externalIds) { + String[] syncExternalUsers(@Nonnull String[] externalIds, boolean forceGroupSync) { List<String> list = new ArrayList<String>(); - context.setForceGroupSync(true).setForceUserSync(true); + context.setForceGroupSync(forceGroupSync).setForceUserSync(true); for (String externalId : externalIds) { ExternalIdentityRef ref = ExternalIdentityRef.fromString(externalId); try { @@ -196,12 +196,12 @@ final class Delegatee { } /** - * @see SynchronizationMBean#syncAllExternalUsers() + * @see SynchronizationMBean#syncAllExternalUsers(boolean) */ @Nonnull - String[] syncAllExternalUsers() { + String[] syncAllExternalUsers(boolean forceGroupSync) { List<String> list = new ArrayList<String>(); - context.setForceGroupSync(true).setForceUserSync(true); + context.setForceGroupSync(forceGroupSync).setForceUserSync(true); try { Iterator<ExternalUser> iter = idp.listUsers(); while (iter.hasNext()) { Modified: jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/SyncMBeanImpl.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/SyncMBeanImpl.java?rev=1737141&r1=1737140&r2=1737141&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/SyncMBeanImpl.java (original) +++ jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/SyncMBeanImpl.java Wed Mar 30 18:20:29 2016 @@ -83,9 +83,15 @@ public class SyncMBeanImpl implements Sy @Nonnull @Override public String[] syncUsers(@Nonnull String[] userIds, boolean purge) { + return syncUsers(userIds, purge, true); + } + + @Nonnull + @Override + public String[] syncUsers(@Nonnull String[] userIds, boolean purge, boolean forceGroupSync) { Delegatee delegatee = getDelegatee(); try { - return delegatee.syncUsers(userIds, purge); + return delegatee.syncUsers(userIds, purge, forceGroupSync); } finally { delegatee.close(); } @@ -94,9 +100,15 @@ public class SyncMBeanImpl implements Sy @Nonnull @Override public String[] syncAllUsers(boolean purge) { + return syncAllUsers(purge, true); + } + + @Nonnull + @Override + public String[] syncAllUsers(boolean purge, boolean forceGroupSync) { Delegatee delegatee = getDelegatee(); try { - return delegatee.syncAllUsers(purge); + return delegatee.syncAllUsers(purge, forceGroupSync); } finally { delegatee.close(); } @@ -105,9 +117,15 @@ public class SyncMBeanImpl implements Sy @Nonnull @Override public String[] syncExternalUsers(@Nonnull String[] externalIds) { + return syncExternalUsers(externalIds, true); + } + + @Nonnull + @Override + public String[] syncExternalUsers(@Nonnull String[] externalIds, boolean forceGroupSync) { Delegatee delegatee = getDelegatee(); try { - return delegatee.syncExternalUsers(externalIds); + return delegatee.syncExternalUsers(externalIds, forceGroupSync); } finally { delegatee.close(); } @@ -116,9 +134,15 @@ public class SyncMBeanImpl implements Sy @Nonnull @Override public String[] syncAllExternalUsers() { + return syncAllExternalUsers(true); + } + + @Nonnull + @Override + public String[] syncAllExternalUsers(boolean forceGroupSync) { Delegatee delegatee = getDelegatee(); try { - return delegatee.syncAllExternalUsers(); + return delegatee.syncAllExternalUsers(forceGroupSync); } finally { delegatee.close(); } Modified: jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/SynchronizationMBean.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/SynchronizationMBean.java?rev=1737141&r1=1737140&r2=1737141&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/SynchronizationMBean.java (original) +++ jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/jmx/SynchronizationMBean.java Wed Mar 30 18:20:29 2016 @@ -74,6 +74,16 @@ public interface SynchronizationMBean { String[] syncUsers(@Nonnull String[] userIds, boolean purge); /** + * Synchronizes the local users with the given user ids. + * @param userIds the user ids + * @param purge if {@code true} users that don't exist in the IDP are deleted. + * @param forceGroupSync if synchronization of containing groups shall be forced + * @return result messages. + */ + @Nonnull + String[] syncUsers(@Nonnull String[] userIds, boolean purge, boolean forceGroupSync); + + /** * Synchronizes all local users with the given user ids. Note that this can be an expensive operation since all * potential users need to be examined. * @@ -84,6 +94,17 @@ public interface SynchronizationMBean { String[] syncAllUsers(boolean purge); /** + * Synchronizes all local users with the given user ids. Note that this can be an expensive operation since all + * potential users need to be examined. + * + * @param purge if {@code true} users that don't exist in the IDP are deleted. + * @param forceGroupSync if synchronization of containing groups shall be forced + * @return result messages. + */ + @Nonnull + String[] syncAllUsers(boolean purge, boolean forceGroupSync); + + /** * Synchronizes the external users with the given external ids. * @param externalIds the external id * @return result messages. @@ -92,6 +113,15 @@ public interface SynchronizationMBean { String[] syncExternalUsers(@Nonnull String[] externalIds); /** + * Synchronizes the external users with the given external ids. + * @param externalIds the external id + * @param forceGroupSync if synchronization of containing groups shall be forced + * @return result messages. + */ + @Nonnull + String[] syncExternalUsers(@Nonnull String[] externalIds, boolean forceGroupSync); + + /** * Synchronizes all the external users, i.e. basically imports the entire IDP. Note that this can be an expensive * operation. * @@ -101,6 +131,16 @@ public interface SynchronizationMBean { String[] syncAllExternalUsers(); /** + * Synchronizes all the external users, i.e. basically imports the entire IDP. Note that this can be an expensive + * operation. + * + * @param forceGroupSync if synchronization of containing groups shall be forced + * @return result messages. + */ + @Nonnull + String[] syncAllExternalUsers(boolean forceGroupSync); + + /** * Returns a list of orphaned users, i.e. users that don't exist anymore on the IDP. Note that this can be an * expensive operation since all potential users need to be examined. * @return a list of the user ids of orphaned users.