Skip to Content.
Sympa Menu

grouper-users - WS retrieveSubjectLoggedIn Fails

Subject: Grouper Users - Open Discussion List

List archive

WS retrieveSubjectLoggedIn Fails


Chronological Thread 
  • From: Colin Hudler <>
  • To: Grouper Users Mailing List <>
  • Subject: WS retrieveSubjectLoggedIn Fails
  • Date: Wed, 07 Jan 2009 12:54:52 -0600

Greetings,

On a new install of grouper-1.4.0 WS using servicesRest/v1_4_000 for the first time, it always fails with an error returned to the client:

"Cant find subject from login id: chudler"

I noticed in the grouper startup message it does not list all of the sources (see below)

<snip>
sources.xml read from: /var/lib/tomcat5/webapps/web/WEB-INF/classes/sources.xml
sources.xml groupersource id: g:gsa

OKAY, where is the JDBC person source?

I was able to confirm it missing by setting
ws.logged.in.subject.default.source = ucmcdb
in grouper-ws.properties

The result is a different error:
SourceUnavailableException: Cant find source with id: 'ucmcdb', Possible source id's: 'g:gsa', 'g:isa',

So I know the source isn't being loaded, but how do I find out why? It is the same sources.xml I am using everywhere else (UI, GSH/API, etc). I have attached it to this message.

The rest of the error is below:

2009-01-07 12:21:44,295: [TP-Processor3] ERROR WsGetMembersResults.assignResultCodeException(123) - clientVersion: v1_4_000, wsGroupLookups: Array size: 1: [0]: edu.internet2.middleware.grouper.ws.soap.WsGroupLookup@50cc50cc[group=<null>,uuid=<null>,groupName=uc:delegated:nbs:members,groupFindResult=<null>]

, memberFilter: All, includeSubjectDetail: false, actAsSubject: edu.internet2.middleware.grouper.ws.soap.WsSubjectLookup@10fc10fc[subject=<null>,member=<null>,cause=<null>,causeMember=<null>,subjectFindResult=<null>,memberFindResult=<null>,subjectId=<null>,subjectIdentifier=<null>,subjectSourceId=<null>], fieldName: null, subjectAttributeNames: null
, paramNames:
, params: null
java.lang.RuntimeException: Cant find subject from login id: chudler
at edu.internet2.middleware.grouper.ws.GrouperServiceJ2ee.retrieveSubjectLoggedIn(GrouperServiceJ2ee.java:214)
at edu.internet2.middleware.grouper.ws.GrouperServiceJ2ee.retrieveSubjectActAsHelper(GrouperServiceJ2ee.java:277)
at edu.internet2.middleware.grouper.ws.GrouperServiceJ2ee.retrieveSubjectActAs(GrouperServiceJ2ee.java:262)
at edu.internet2.middleware.grouper.ws.util.GrouperServiceUtils.retrieveGrouperSession(GrouperServiceUtils.java:661)
at edu.internet2.middleware.grouper.ws.GrouperServiceLogic.getMembers(GrouperServiceLogic.java:1080)
at edu.internet2.middleware.grouper.ws.GrouperServiceLogic.getMembersLite(GrouperServiceLogic.java:1346)
at edu.internet2.middleware.grouper.ws.soap.GrouperService.getMembersLite(GrouperService.java:345)
at edu.internet2.middleware.grouper.ws.rest.GrouperServiceRest.getMembersLite(GrouperServiceRest.java:148)
at edu.internet2.middleware.grouper.ws.rest.method.GrouperWsRestGetGroup$1.service(GrouperWsRestGetGroup.java:49)
at edu.internet2.middleware.grouper.ws.rest.method.GrouperWsRestGet$1.service(GrouperWsRestGet.java:78)
at edu.internet2.middleware.grouper.ws.rest.method.GrouperRestHttpMethod$1.service(GrouperRestHttpMethod.java:42)
at edu.internet2.middleware.grouper.ws.rest.GrouperRestServlet.service(GrouperRestServlet.java:156)
<snip>
Caused by:
edu.internet2.middleware.subject.SubjectNotFoundException: subject not found: chudler
at edu.internet2.middleware.grouper.subj.SourcesXmlResolver.thereCanOnlyBeOne(SourcesXmlResolver.java:286)
at edu.internet2.middleware.grouper.subj.SourcesXmlResolver.findByIdentifier(SourcesXmlResolver.java:181)
at edu.internet2.middleware.grouper.subj.CachingResolver.findByIdentifier(CachingResolver.java:159)
at edu.internet2.middleware.grouper.subj.ValidatingResolver.findByIdentifier(ValidatingResolver.java:130)
at edu.internet2.middleware.grouper.SubjectFinder.findByIdentifier(SubjectFinder.java:187)
at edu.internet2.middleware.grouper.ws.GrouperServiceJ2ee.retrieveSubjectLoggedIn(GrouperServiceJ2ee.java:198)
<?xml version="1.0" encoding="utf-8"?>

<sources>
  <source adapterClass="edu.internet2.middleware.grouper.GrouperSourceAdapter">
    <id>g:gsa</id>
    <name>Grouper: Group Source Adapter</name>
    <type>group</type>
  </source>

 <source adapterClass="edu.internet2.middleware.grouper.subj.GrouperJdbcSourceAdapter">
    <id>ucmcdb</id>
    <name>The University of Chicago MCDB</name>
     <type>person</type>
     <init-param>
       <param-name>dbDriver</param-name>
       <param-value>com.microsoft.jdbc.sqlserver.SQLServerDriver</param-value>
     </init-param>
     <init-param>
       <param-name>dbUrl</param-name>
       <param-value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=nsit</param-value>
     </init-param>
     <init-param>
       <param-name>dbUser</param-name>
       <param-value>grouper</param-value>
     </init-param>
     <init-param>
       <param-name>dbPwd</param-name>
       <param-value>/srv/grouper/api/conf/passwords/mcdb</param-value>
     </init-param>
      <init-param>
       <param-name>SubjectID_AttributeType</param-name>
       <param-value>id</param-value>
     </init-param>
     <init-param>
       <param-name>Name_AttributeType</param-name>
       <param-value>name</param-value>
     </init-param>
     <init-param>
       <param-name>Description_AttributeType</param-name>
       <param-value>description</param-value>
     </init-param>

     <search>
         <searchType>searchSubject</searchType>
         <param>
           <param-name>numParameters</param-name>
           <param-value>2</param-value>
         </param>
         <param>
             <param-name>sql</param-name>
             <param-value>
SELECT individual.ucid AS id, ldapuids.name AS login, 'name' AS name, 'desc' AS description FROM individual LEFT OUTER JOIN ldapuids ON id=ldapuids.individualid WHERE ldapuids.name = ? OR individual.ucid = ?
             </param-value>
         </param>
     </search>

     <search>
         <searchType>searchSubjectByIdentifier</searchType>
         <param>
           <param-name>numParameters</param-name>
           <param-value>2</param-value>
         </param>
         <param>
             <param-name>sql</param-name>
             <param-value>
SELECT individual.ucid AS id, ldapuids.name AS login, 'name' AS name, 'desc' AS description FROM individual LEFT OUTER JOIN ldapuids ON id=ldapuids.individualid WHERE ldapuids.name = ? OR individual.ucid = ?
             </param-value>
         </param>
     </search>

     <search>
        <searchType>search</searchType>
        <param>
           <param-name>numParameters</param-name>
           <param-value>9</param-value>
         </param>
         <param>
             <param-name>sql</param-name>
             <param-value>
SET CONCAT_NULL_YIELDS_NULL OFF;
SELECT individual.ucid AS id, account.name AS login,
       (individual.lastname + ',' + individual.firstname + ' ' + middlename) AS name,
       (individual.firstname + ' ' + individual.middlename + ' ' + individual.lastname) AS description, 
       student.curriculum, student.curriculumid,  staff.department
FROM individual
         left outer join account ON id=account.individualid
         left outer join student ON id=student.individualid
         left outer join staff   ON id=staff.individualid
WHERE individual.ucid IS NOT NULL AND
         (
               LOWER(account.name) LIKE LOWER('%' + ? + '%')
           OR  LOWER(lastname + ' ' + firstname) LIKE    LOWER('%' + CONVERT(varchar, ?) + '%')
           OR  LOWER(firstname + ' ' + lastname) LIKE    LOWER('%' + CONVERT(varchar, ?) + '%')
           OR  LOWER(firstname + ' ' + middlename) LIKE  LOWER('%' + CONVERT(varchar, ?) + '%')
           OR  LOWER(middlename + ' ' + lastname) LIKE   LOWER('%' + CONVERT(varchar, ?) + '%')
           OR  LOWER(lastname) LIKE                      LOWER('%' + CONVERT(varchar, ?) + '%')
           OR  LOWER(firstname) LIKE                     LOWER('%' + CONVERT(varchar, ?) + '%')
           OR  LOWER(middlename) LIKE                    LOWER('%' + CONVERT(varchar, ?) + '%')
           OR  LOWER(ucid) LIKE                          LOWER('%' + CONVERT(varchar, ?) + '%')
          )
             </param-value>
         </param>
     </search>
    </source>

</sources>



Archive powered by MHonArc 2.6.16.

Top of Page