Skip to Content.
Sympa Menu

grouper-users - Re: [grouper-users] Re: Error - Found multiple matching subjects

Subject: Grouper Users - Open Discussion List

List archive

Re: [grouper-users] Re: Error - Found multiple matching subjects

Chronological Thread 
  • From: Stephen A Sazama <>
  • To: Akki Kumar <>
  • Cc: "Hyzer, Chris" <>, "" <>
  • Subject: Re: [grouper-users] Re: Error - Found multiple matching subjects
  • Date: Wed, 17 May 2017 13:21:39 -0400
  • Ironport-phdr: 9a23:t8kwhxTbqbEidkvp3mHGz3H1rNpsv+yvbD5Q0YIujvd0So/mwa6zYBWN2/xhgRfzUJnB7Loc0qyN4v+mADNLuM/Y+Fk5M7V0HycfjssXmwFySOWkMmbcaMDQUiohAc5ZX0Vk9XzoeWJcGcL5ekGA6ibqtW1aFRrwLxd6KfroEYDOkcu3y/qy+5rOaAlUmTaxe71/IRG0oAnLq8Ubg4RuJrssxhfUv3BFZ/lYyWR0KFyJgh3y/N2w/Jlt8yRRv/Iu6ctNWrjkcqo7ULJVEi0oP3g668P3uxbDSxCP5mYHXWUNjhVIGQnF4wrkUZr3ryD3q/By2CiePc3xULA0RTGv5LplRRP0lCsKMSMy/WfKgcJyka1bugqsqB5xw4DUbo+bN+dwcL3Bct4BX2VNQtxcWjZdDo+gbYYCCfcKM+ZCr4n6olsDtQawBRWyC+P3yj9HmHn21rAm3u88DA/Jxg0hEMgLsHvOsd74M7wSUfuvw6jJ1zrDaulZ1Czg6IjNbx8tu++DUq9tccfIz0QkCg3LjlKVqYP/PjOV0PwAsmaF4OV7TuKvjHIoqwJvrTiz3MsskZfGipoUylDY7iV12po1JcWgRE50Zt6kF5RQtyWEOIdsXswiRGRotD4myr0Go560YjIFx4k9yx7FdvyHdZCE7Qn5VOaQOjd0nnNleKmnixay7Uig1vX8VtKq31ZQsCpFlsfDtmwX2xzR8MeHVOFy8l+71jaO0wDf8P1LIUcxlabDNp4h3r8wlp4JvUTFACD2hEP7h7KVeEU84uWl6ufqbq/4qpKSKYN4kBzyP6ozlsClDuk1MxACU3aH9em4zrHu/k30TK9UgvEonKTVqo3WKMAZq6O/HgRbyJws6wylADejyNkYnWcILFZCeB+fkYfpIEvBLf7iAfeihlSjjS1nx/HePr3hB5XMIWLPn6vmfbZ480JcyQwzws5D559MC7wMI+j/VlH/udDGFBM1LgK5z/v9BNhy144SQWePDbWYMKPWv1+I/OUvI+yUaY8OozbyMfkk6OTrjXAjglIdYKyp0oYNZH+mA/tmPl2VYWDwjdcZDWcKog0+QfTliF2YVj5Tem6yULwm5j0iFYKmFpnMRpq2gLGa2Ce7H4ZWZnxdClySC3vodoOEW+sSZyKIJM9ujCAEWaa7R4A/yB6uqVyy970yB+nX+2U7qJfqzpAh7ujahxA0+iVpAt+B0maLVDkswUsHQjY32OZ0pkkrmXmZ1q0tuOBVDdxe4btgGjwzJ5fZxqQuEMv7SAvEd/+UTVrgT9m7V2JiBuktysMDNh4uU+6piQrOinKn

Hi Chris,

I'll see if I can explain what we're trying to do. We have an LDAP source for all of our Grouper people subjects, and we are already provisioning a number of groups back to LDAP. We now want to provision some other groups into our Active Directory, so Akki added that as a source and the result is that we basically have 2 subjects for each person (one in LDAP source and one in AD source), since they are identified by a numeric ID number that is present in both LDAP and AD. That just makes it confusing for users when they go to add a group member and get 2 options that appear to be the same, so we want to figure out what is the best way for us to configure this.

- Do we want AD to be a second source, or can we configure it as something else since we only want to provision out to it? AD subjects wouldn't be needed if we can get it to recognize LDAP subject memberships by the ID and provision those to AD.

- Is there a way to mark groups such that they can only be assigned members from a given source? For example, we would want all groups to use the LDAP source by default, but mark a few to use the AD source so we can provision memberships back to AD.

I would think this scenario (one source of record, multiple LDAP/AD/Database sources to provision to) is fairly common. Please let us know if there are any existing examples we can take a look at.


On Thu, May 11, 2017 at 2:39 PM, Akki Kumar <> wrote:
Hi Chris,

The Sources.xml file has two different source ids (ldap & ad). When I search for the user (Screenshot - a.jpg) in the Member Name or ID field, it spins and errors out (do not show the drop down). However, when I search for the user in the Search for an entity window (Screenshot - c.jpg), and it works. I am little baffled as to why the userid search work in the  Search for an entity window and not for the Member Name or ID.

Is screenshot will fine? I have attached screenshots to below link:


Both source ids, ldap & ad, points to a different directory access protocol.


On Thu, May 11, 2017 at 1:10 PM, Hyzer, Chris <> wrote:

So you have two sources, with different source ids, and you search for a user, and select the user in the drop down?  Then after selecting they user you click add, and I gives an error?


As you know, its best not to have overlaps in subject sources…  any chance you can get a normalized view of users in a database or something?  However, this should work.  If you type in the userid and click add, that wont work, but if you type in a userid, and select the user from the combobox, and click add, that should work.  That associates it with a source id (or at least it should J )


Any chance you can make a quick video (e.g. on your phone) of the screen where you get the error and send it to me so I can see how this happens?






From: Akki Kumar [mailto:]
Sent: Thursday, May 11, 2017 11:35 AM
To: Hyzer, Chris <>
Subject: Error - Found multiple matching subjects


Hi Chris,


I installed Grouper 2.3.0 and created two source adapters, LDAP & AD, in sources.xml. Grouper threw below error when I search for a user (after clicking on the "Add members" button). I believe, it's trying to search for a user in both, LDAP & AD, and that is one of the reason it found multiple subjects. 



  • Is there a way for a grouper to suggest both LDAP& AD user (in the search), instead of throwing an error? 



  • Multiple_Results parameter is set to true
  • All patches are applied to grouper api
  • I set authentication sourceId to ldap



2017-05-11 11:11:39,932: [ajp-nio-8009-exec-2] ERROR GrouperUiRestServlet.doGet(326) -  - Problem calling reflection from URL: edu.internet2.middleware.grouper.grouperUi.serviceLogic.UiV2Group.addMemberFilter

edu.internet2.middleware.subject.SubjectNotUniqueException: found multiple matching subjects: 2, <USER_NAME>,

Problem calling method addMemberFilter on edu.internet2.middleware.grouper.grouperUi.serviceLogic.UiV2Group

        at edu.internet2.middleware.grouper.subj.SourcesXmlResolver.thereCanOnlyBeOne(

        at edu.internet2.middleware.grouper.subj.SourcesXmlResolver.findByIdOrIdentifier(

        at edu.internet2.middleware.grouper.subj.CachingResolver.findByIdOrIdentifier(

        at edu.internet2.middleware.grouper.subj.ValidatingResolver.findByIdOrIdentifier(

        at edu.internet2.middleware.grouper.SubjectFinder.findByIdOrIdentifier(

        at edu.internet2.middleware.grouper.grouperUi.serviceLogic.UiV2Group$1.lookup(

        at edu.internet2.middleware.grouper.grouperUi.serviceLogic.UiV2Group$1.lookup(

        at edu.internet2.middleware.grouper.grouperUi.beans.dojo.DojoComboLogic.logic(

        at edu.internet2.middleware.grouper.grouperUi.serviceLogic.UiV2Group.addMemberFilter(

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(

        at java.lang.reflect.Method.invoke(

        at edu.internet2.middleware.grouper.util.GrouperUtil.invokeMethod(

        at edu.internet2.middleware.grouper.util.GrouperUtil.callMethod(

        at edu.internet2.middleware.grouper.j2ee.GrouperUiRestServlet.doGet(

        at javax.servlet.http.HttpServlet.service(

        at javax.servlet.http.HttpServlet.service(

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(

        at org.apache.tomcat.websocket.server.WsFilter.doFilter(

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(

        at org.owasp.csrfguard.CsrfGuardFilter.doFilter(

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(

        at edu.internet2.middleware.grouper.ui.GrouperUiFilter.doFilter(

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(


        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(


        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(

        at org.apache.catalina.core.StandardWrapperValve.invoke(

        at org.apache.catalina.core.StandardContextValve.invoke(

        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(

        at org.apache.catalina.core.StandardHostValve.invoke(

        at org.apache.catalina.valves.ErrorReportValve.invoke(

        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(

        at org.apache.catalina.core.StandardEngineValve.invoke(

        at org.apache.catalina.connector.CoyoteAdapter.service(

        at org.apache.coyote.ajp.AjpProcessor.service(

        at org.apache.coyote.AbstractProcessorLight.process(

        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(



        at java.util.concurrent.ThreadPoolExecutor.runWorker(

        at java.util.concurrent.ThreadPoolExecutor$

        at org.apache.tomcat.util.threads.TaskThread$



Thank you,



Archive powered by MHonArc 2.6.19.

Top of Page