From cbc1a5a36052359d581eebf8a1e09716d02920e5 Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Fri, 29 May 2020 10:35:58 +0200 Subject: [PATCH] The export was stuck due to #19348, now the getGroupUsers does not stall --- CHANGELOG.md | 22 +++++++++++++++++++ pom.xml | 2 +- .../org/gcube/portal/ldapexport/LDAPSync.java | 17 +++++++++----- 3 files changed, 35 insertions(+), 6 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..a5936bc --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,22 @@ + Changelog for "ldap-export-servlet" + + +## [v1.2.1] [r4.23.0] - 2020-05-29 + +### Fixes +- This release fixes a potential bug in the export of the users to LDAP. See Incident #19348 + +## [v1.2.0] [r unknown] - 2016-09-12 +### New Features +- Feature #4999: LDAP Export script to export SSH public key + +### Fixes +- Bug fix for #4916: LDAP Export fails if user surname is empty + +## [v1.2.0] [r unknown] - 2016-07-04 +### New Features +- Updated to use Liferay 6.2 API + +## [v1.0.0] [r unknown] - 2015-12-11 + +- First Release diff --git a/pom.xml b/pom.xml index f7246c9..b899b8c 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ org.gcube.portal ldap-export-servlet war - 1.2.0-SNAPSHOT + 1.2.1-SNAPSHOT ldap-export-servlet Maven Webapp This component read periodically exports users and their groups in LDAP diff --git a/src/main/java/org/gcube/portal/ldapexport/LDAPSync.java b/src/main/java/org/gcube/portal/ldapexport/LDAPSync.java index adeef01..1ae2fda 100644 --- a/src/main/java/org/gcube/portal/ldapexport/LDAPSync.java +++ b/src/main/java/org/gcube/portal/ldapexport/LDAPSync.java @@ -22,16 +22,17 @@ import org.gcube.vomanagement.usermanagement.GroupManager; import org.gcube.vomanagement.usermanagement.impl.LiferayGroupManager; import org.gcube.vomanagement.usermanagement.impl.LiferayUserManager; import org.gcube.vomanagement.usermanagement.model.GCubeGroup; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import com.liferay.portal.kernel.cache.CacheRegistryUtil; import com.liferay.portal.kernel.exception.SystemException; +import com.liferay.portal.kernel.log.Log; +import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.model.User; import com.liferay.portal.service.UserLocalServiceUtil; public class LDAPSync implements Runnable { - private static final Logger _log = LoggerFactory.getLogger(LDAPSync.class); + + private static Log _log = LogFactoryUtil.getLog(LDAPSync.class); private static final String LDAP_ORG_FILTER = "(objectClass=organizationalUnit)"; private static final String LDAP_GROUP_FILTER = "(objectClass=posixGroup)"; @@ -82,7 +83,7 @@ public class LDAPSync implements Runnable { List users = null; try { users = getAllLiferayUsers(); - _log.debug("\n***Read " + users.size() + " from LR DB\n"); + _log.info("***Read " + users.size() + " from LR DB\n"); } catch (Exception e1) { e1.printStackTrace(); } @@ -185,7 +186,13 @@ public class LDAPSync implements Runnable { * @throws SystemException */ private void updateUsersInGroup(DirContext ctx, String vreSubCtx, GCubeGroup vre) throws NamingException, SystemException { - List users = UserLocalServiceUtil.getGroupUsers(vre.getGroupId()); + _log.debug("updateUsersInGroup: " + vre.getGroupName() ); + List users = new ArrayList<>(); + try { + users = UserLocalServiceUtil.getGroupUsers(vre.getGroupId()); + } catch (Exception e) { + _log.error("Could not retrieve members of vre: " + vre.getGroupName() + " having groupid: "+vre.getGroupId(), e); + } for (User userObj : users) { String user = userObj.getScreenName(); try {