From b12fe5600ae7c19727f70e4c9416a0a50f6298d4 Mon Sep 17 00:00:00 2001 From: bonhamcm Date: Fri, 13 Dec 2013 12:52:55 -0500 Subject: [PATCH] Changed to NullSearchImpl when user uid is star since no users were returned --- .../java/net/wimpi/crowd/ldap/CrowdPartition.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/wimpi/crowd/ldap/CrowdPartition.java b/src/main/java/net/wimpi/crowd/ldap/CrowdPartition.java index cb1353c..f1eb491 100644 --- a/src/main/java/net/wimpi/crowd/ldap/CrowdPartition.java +++ b/src/main/java/net/wimpi/crowd/ldap/CrowdPartition.java @@ -1,5 +1,6 @@ package net.wimpi.crowd.ldap; +import com.atlassian.crowd.embedded.api.SearchRestriction; import com.atlassian.crowd.exception.ApplicationPermissionException; import com.atlassian.crowd.exception.InvalidAuthenticationException; import com.atlassian.crowd.exception.OperationFailedException; @@ -7,6 +8,7 @@ import com.atlassian.crowd.model.group.Group; import com.atlassian.crowd.model.user.User; import com.atlassian.crowd.search.query.entity.restriction.MatchMode; +import com.atlassian.crowd.search.query.entity.restriction.NullRestrictionImpl; import com.atlassian.crowd.search.query.entity.restriction.TermRestriction; import com.atlassian.crowd.search.query.entity.restriction.constants.GroupTermKeys; import com.atlassian.crowd.search.query.entity.restriction.constants.UserTermKeys; @@ -417,7 +419,7 @@ private BaseEntryFilteringCursor findObject(SearchingOperationContext ctx) { String dnName = dn.getName(); ServerEntry se = ctx.getEntry(); - log.debug("findObject()::dn=" + dn.getName() + "::entry=" + se.toString()); + log.debug("findObject()::dn=" + dnName + "::entry=" + se.toString()); //1. Try cache se = m_EntryCache.get(dn.getName()); @@ -456,7 +458,7 @@ private BaseEntryFilteringCursor findOneLevel(SearchOperationContext ctx) { List l = new ArrayList(); try { - TermRestriction groupName = new TermRestriction(GroupTermKeys.NAME, MatchMode.CONTAINS, ""); + TermRestriction groupName = new TermRestriction(GroupTermKeys.NAME, MatchMode.CONTAINS, ""); List list = m_CrowdClient.searchGroupNames(groupName, 0, Integer.MAX_VALUE); for (String gn : list) { DN gdn = new DN(String.format("dn=%s,%s", gn, CROWD_GROUPS_DN)); @@ -487,7 +489,14 @@ private BaseEntryFilteringCursor findOneLevel(SearchOperationContext ctx) { List l = new ArrayList(); try { - TermRestriction userName = new TermRestriction(UserTermKeys.USERNAME, MatchMode.CONTAINS, uid); + SearchRestriction userName = null; + if ("*".equals(uid)) { + // Contains * term restriction does not return any users, so use null one + userName = NullRestrictionImpl.INSTANCE; + + } else { + userName = new TermRestriction(UserTermKeys.USERNAME, MatchMode.CONTAINS, uid); + } List list = m_CrowdClient.searchUserNames(userName, 0, Integer.MAX_VALUE); for (String gn : list) { DN udn = new DN(String.format("dn=%s,%s", gn, CROWD_USERS_DN));