From 854a113f22f36c49d2c3837663132c0324473acb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E9=80=9A=E9=80=9A?= Date: Fri, 13 Sep 2024 09:03:05 +0800 Subject: [PATCH] RANGER-4307: Allow users customize the time interval (#269) Modified the UserGroupSyncConfig.java file and added the configuration of user forced custom time synchronization. If enabled, LDAP users can be synchronized according to the user defined time. --- .../unixusersync/config/UserGroupSyncConfig.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java b/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java index 325e745479..a10b8233e3 100644 --- a/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java +++ b/ugsync/src/main/java/org/apache/ranger/unixusersync/config/UserGroupSyncConfig.java @@ -98,6 +98,8 @@ public class UserGroupSyncConfig { private static final String UGSYNC_SLEEP_TIME_IN_MILLIS_BETWEEN_CYCLE_PARAM = "ranger.usersync.sleeptimeinmillisbetweensynccycle"; + private static final String UGSYNC_SLEEP_LDAP_FORCE_TIME_IN_MILLIS_BETWEEN_CYCLE_PARAM_ENABLED = "ranger.usersync.ldap.force.sleeptimeinmillisbetweensynccycle.enabled"; + private static final long UGSYNC_SLEEP_TIME_IN_MILLIS_BETWEEN_CYCLE_MIN_VALUE = 60000L; private static final long UGSYNC_SLEEP_TIME_IN_MILLIS_BETWEEN_CYCLE_UNIX_DEFAULT_VALUE = 60000L; @@ -517,6 +519,7 @@ public long getInitSleepTimeInMillisBetweenCycle() throws Throwable{ } public long getSleepTimeInMillisBetweenCycle() throws Throwable { String val = prop.getProperty(UGSYNC_SLEEP_TIME_IN_MILLIS_BETWEEN_CYCLE_PARAM); + boolean is_ldap_force = Boolean.parseBoolean(prop.getProperty(UGSYNC_SLEEP_LDAP_FORCE_TIME_IN_MILLIS_BETWEEN_CYCLE_PARAM_ENABLED)); String className = getUserGroupSource().getClass().getName(); if (val == null) { if (LGSYNC_SOURCE_CLASS.equals(className)) { @@ -529,7 +532,12 @@ public long getSleepTimeInMillisBetweenCycle() throws Throwable { long ret = Long.parseLong(val); long min_interval; if (LGSYNC_SOURCE_CLASS.equals(className)) { - min_interval = UGSYNC_SLEEP_TIME_IN_MILLIS_BETWEEN_CYCLE_LDAP_DEFAULT_VALUE; + if (is_ldap_force && ret < UGSYNC_SLEEP_TIME_IN_MILLIS_BETWEEN_CYCLE_LDAP_DEFAULT_VALUE) { + min_interval = ret; + LOG.info("If you force the synchronization time of ldap users to be less than the default of 3600s, this setting [" + min_interval + "] millisec will take effect."); + } else { + min_interval = UGSYNC_SLEEP_TIME_IN_MILLIS_BETWEEN_CYCLE_LDAP_DEFAULT_VALUE; + } }else if(UGSYNC_SOURCE_CLASS.equals(className)){ min_interval = UGSYNC_SLEEP_TIME_IN_MILLIS_BETWEEN_CYCLE_UNIX_DEFAULT_VALUE; } else {