From d00feb32ea977a004c52134074a2a07d1a867eef Mon Sep 17 00:00:00 2001 From: MaxKey Date: Fri, 9 Sep 2022 20:49:54 +0800 Subject: [PATCH] LDAP Synchronize fix --- .../ActiveDirectoryOrganizationService.java | 6 +++++- .../activedirectory/ActiveDirectoryUsersService.java | 7 ++++++- .../maxkey/synchronizer/ldap/LdapOrganizationService.java | 7 ++++++- .../org/maxkey/synchronizer/ldap/LdapUsersService.java | 7 ++++++- 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/maxkey-synchronizers/maxkey-synchronizer-activedirectory/src/main/java/org/maxkey/synchronizer/activedirectory/ActiveDirectoryOrganizationService.java b/maxkey-synchronizers/maxkey-synchronizer-activedirectory/src/main/java/org/maxkey/synchronizer/activedirectory/ActiveDirectoryOrganizationService.java index c3864dae9..019441d24 100644 --- a/maxkey-synchronizers/maxkey-synchronizer-activedirectory/src/main/java/org/maxkey/synchronizer/activedirectory/ActiveDirectoryOrganizationService.java +++ b/maxkey-synchronizers/maxkey-synchronizer-activedirectory/src/main/java/org/maxkey/synchronizer/activedirectory/ActiveDirectoryOrganizationService.java @@ -180,7 +180,11 @@ public class ActiveDirectoryOrganizationService extends AbstractSynchronizerSer try { Organizations org = new Organizations(); org.setLdapDn(nameInNamespace); - String []namePaths = name.replaceAll(",OU=", "/").replaceAll("OU=", "/").split("/"); + String []namePaths = name.replaceAll(",OU=" , "/") + .replaceAll("OU=" , "/") + .replaceAll(",ou=" , "/") + .replaceAll("ou=" , "/") + .split("/"); String namePah= "/"+rootOrganization.getOrgName(); for(int i = namePaths.length -1 ; i >= 0 ; i --) { namePah = namePah + "/" + namePaths[i]; diff --git a/maxkey-synchronizers/maxkey-synchronizer-activedirectory/src/main/java/org/maxkey/synchronizer/activedirectory/ActiveDirectoryUsersService.java b/maxkey-synchronizers/maxkey-synchronizer-activedirectory/src/main/java/org/maxkey/synchronizer/activedirectory/ActiveDirectoryUsersService.java index 54e9a6bc3..8868565f0 100644 --- a/maxkey-synchronizers/maxkey-synchronizer-activedirectory/src/main/java/org/maxkey/synchronizer/activedirectory/ActiveDirectoryUsersService.java +++ b/maxkey-synchronizers/maxkey-synchronizer-activedirectory/src/main/java/org/maxkey/synchronizer/activedirectory/ActiveDirectoryUsersService.java @@ -119,7 +119,12 @@ public class ActiveDirectoryUsersService extends AbstractSynchronizerService UserInfo userInfo = new UserInfo(); userInfo.setLdapDn(nameInNamespace); - String []namePaths = name.replaceAll(",OU=", "/").replaceAll("OU=", "/").split("/"); + String []namePaths = name.replaceAll(",OU=" , "/") + .replaceAll("OU=" , "/") + .replaceAll(",ou=" , "/") + .replaceAll("ou=" , "/") + .split("/"); + String namePah= "/"+rootOrganization.getOrgName(); for(int i = namePaths.length -1 ; i >= 0 ; i --) { namePah = namePah + "/" + namePaths[i]; diff --git a/maxkey-synchronizers/maxkey-synchronizer-ldap/src/main/java/org/maxkey/synchronizer/ldap/LdapOrganizationService.java b/maxkey-synchronizers/maxkey-synchronizer-ldap/src/main/java/org/maxkey/synchronizer/ldap/LdapOrganizationService.java index c84dc45d9..35d020450 100644 --- a/maxkey-synchronizers/maxkey-synchronizer-ldap/src/main/java/org/maxkey/synchronizer/ldap/LdapOrganizationService.java +++ b/maxkey-synchronizers/maxkey-synchronizer-ldap/src/main/java/org/maxkey/synchronizer/ldap/LdapOrganizationService.java @@ -174,7 +174,12 @@ public class LdapOrganizationService extends AbstractSynchronizerService implem try { Organizations org = new Organizations(); org.setLdapDn(nameInNamespace); - String []namePaths = name.replaceAll(",OU=", "/").replaceAll("OU=", "/").split("/"); + String []namePaths = name.replaceAll(",OU=" , "/") + .replaceAll("OU=" , "/") + .replaceAll(",ou=" , "/") + .replaceAll("ou=" , "/") + .split("/"); + String namePah= "/"+rootOrganization.getOrgName(); for(int i = namePaths.length -1 ; i >= 0 ; i --) { namePah = namePah + "/" + namePaths[i]; diff --git a/maxkey-synchronizers/maxkey-synchronizer-ldap/src/main/java/org/maxkey/synchronizer/ldap/LdapUsersService.java b/maxkey-synchronizers/maxkey-synchronizer-ldap/src/main/java/org/maxkey/synchronizer/ldap/LdapUsersService.java index f31762c4b..7d4f304bf 100644 --- a/maxkey-synchronizers/maxkey-synchronizer-ldap/src/main/java/org/maxkey/synchronizer/ldap/LdapUsersService.java +++ b/maxkey-synchronizers/maxkey-synchronizer-ldap/src/main/java/org/maxkey/synchronizer/ldap/LdapUsersService.java @@ -52,6 +52,7 @@ public class LdapUsersService extends AbstractSynchronizerService implements IS constraints.setSearchScope(ldapUtils.getSearchScope()); String filter = StringUtils.isNotBlank(this.getSynchronizer().getFilters()) ? getSynchronizer().getFilters() : "(&(objectClass=inetOrgPerson))"; + _logger.debug(" User filter {} ",filter); NamingEnumeration results = ldapUtils.getConnection().search(ldapUtils.getBaseDN(), filter, constraints); @@ -110,7 +111,11 @@ public class LdapUsersService extends AbstractSynchronizerService implements IS public UserInfo buildUserInfo(HashMap attributeMap,String name,String nameInNamespace) { UserInfo userInfo = new UserInfo(); userInfo.setLdapDn(nameInNamespace); - String []namePaths = name.replaceAll(",OU=", "/").replaceAll("OU=", "/").split("/"); + String []namePaths = name.replaceAll(",OU=" , "/") + .replaceAll("OU=" , "/") + .replaceAll(",ou=" , "/") + .replaceAll("ou=" , "/") + .split("/"); String namePah= "/"+rootOrganization.getOrgName(); for(int i = namePaths.length -1 ; i >= 0 ; i --) { namePah = namePah + "/" + namePaths[i];