Skip to Content.
Sympa Menu

grouper-users - [grouper-users] Re: Problem resolving subjects

Subject: Grouper Users - Open Discussion List

List archive

[grouper-users] Re: Problem resolving subjects


Chronological Thread 
  • From: "Guenther, Dean R." <>
  • To: "Hyzer, Chris" <>, "" <>
  • Cc: "" <>
  • Subject: [grouper-users] Re: Problem resolving subjects
  • Date: Wed, 9 May 2018 20:23:25 +0000
  • Accept-language: en-US
  • Authentication-results: spf=none (sender IP is ) ;
  • Ironport-phdr: 9a23:WEHUkh2Gv8G/eXArsmDT+DRfVm0co7zxezQtwd8ZsesWI/jxwZ3uMQTl6Ol3ixeRBMOHs6kC07KempujcFRI2YyGvnEGfc4EfD4+ouJSoTYdBtWYA1bwNv/gYn9yNs1DUFh44yPzahANS47xaFLIv3K98yMZFAnhOgppPOT1HZPZg9iq2+yo9JDffwtFiCChbb9uMR67sRjfus4KjIV4N60/0AHJonxGe+RXwWNnO1eelAvi68mz4ZBu7T1et+ou+MBcX6r6eb84TaFDAzQ9L281/szrugLdQgaJ+3ART38ZkhtMAwjC8RH6QpL8uTb0u+ZhxCWXO9D9QLYpUjqg8qhrUgflhicZOTAk7GHZhM9+jKxZrx2vphxw34HbbZqPO/Zie6PQZ88WSHBDU8tXSidPApm8b4wKD+cZM+pWrpT9qEUIrRuiBQmjGvnvxidVjXH4w6I1yeIhGhza0gA6Ed4FrXPZrNroNKgMV+C10KnIwivZb/5N1zb985XIfgo/rv6RQLJ9aMzcwlQhGQPCi1Wfs43lPzWN2+QPrmeU9PZvWfipi2E9rgF+vCCjxt82hYnTnI0Vz0rI9SNjz4YwO9K0UEx7bsO/H5RMrS2aNpZ5Tts5Q2FvpSY60KEJtoChcCgL1Zsr3wXfa/uCc4eW/h3jU+CRITl5hHJqebKwmgy+8Um9xeD6S8K6005KozJbntbWqnwByhne5tWaRvdg+0qh1zmC2xzP5uxBL0A7i6XWJIQkz7M1l5cfrEfOEjf3lUjylqOaa0Qp9+my5+noY7jqvIKQOoFohg3mPKQhhM+yDfg9PwULQWeW+uex2bPm8ED9WrpFkP07n6zavZDUIckWoqu0DxJL3Yk56huyCSqt3s4CknkdNl1FfQqKj4j3NFHKJ/D1Fe+xjkirnjt3yf3KJ6DsDZfTInTal7fuZqhy51RbyAou0dBQ/JVUCqwHIP3uQEPxrMbYDhglMwOq3+nnFNR91oQYWW6VBa+ZLb/SsVuP5uIoIOmAfpMauDH4K/Q95v7ui2E2mUMFcKW3x5QbdG20E/F7L0mEfHbhh9kBHGgWsgYiSeHqhkONXDFJaHu3Wq8x5yw3BYG+AYfGXI+tgbiB3CmhHp1RY2BLEl+MEWr2eIWCR/cMaDydItV6nz0KTrihVpUt2g+zuw/n07ZnNPbb+jUEtZL/09h4/+LTlQs19TxpF8SSzXuNQ3hpnmMTWTA2xrt/rFd5yleCyqh4n+dYGcJJ6/NIVAc6KYDTz/Z8C9/sRgLNYM2FR0i7TdW7UnkNSYd7484cblw5U/6ilBHYlWL+BrQVhq6GHrQ16amawmD8IcA7xnrbgu1pxVY8RdZXOHfjm7Vy7RP7BojVnl+fmrrwM6kQwWSFoGiZyneWsVsdTRV9S77tXHYDa1HQoMijoE7OUun9J64gN14L5tOPLLdKZ8etxXlLTfGrApKUKza+hmq2GRaF3JuTd5esdmkAinaOQHMYmhweqC7VfTM1AT2s9jrT
  • Spamdiagnosticmetadata: NSPM
  • Spamdiagnosticoutput: 1:99

Thanks Chris,

I didn’t understand that changes in grouper.apiBinary/conf/ needed to be copied to grouper.ui as well.

After copying and restarting the Ui it now finds the subject for the group I built in loader. thanks – dean

 

 

 

 

Dean Guenther                          
Washington State University    Phone:    509 335-0433
Pullman, WA. 99164-1222        fax:      509 335-0540
Identity and Access Management Manager

 

From: "Hyzer, Chris" <>
Date: Wednesday, May 9, 2018 at 11:10 AM
To: "" <>, "" <>
Cc: "" <>
Subject: RE: Problem resolving subjects

 

Do you have your sources.xml copied to all envs and restart your loader/ui?  all your config files need to be in sync.

 

Thanks

Chris

 

From: [mailto:] On Behalf Of Guenther, Dean R.
Sent: Monday, May 07, 2018 6:40 PM
To:
Cc:
Subject: [grouper-users] Problem resolving subjects

 

I’ve been having trouble setting up subjects to be mapped from my PersonRegistry, which resides on the same Oracle DB as Grouper. When I setup a new loader task to create an employee group called “hourly” it runs and finds all 7461 people who are to belong in the group. But then it gives an error that each person’s subject is not found. I’ve checked the archives and Grouper Deployement Guide and most references I found about this error refer to a problem with the sources.xml or subject.properties. But even after getting those setup the way I think they should be, it still doesn’t find a subject for these people.

 

Here is what I’m seeing in the grouperUi for building this group “hourly”

 

######## CONFIGURATION ########

SUCCESS: grouperLoaderType is: SQL_SIMPLE

SUCCESS: This is a SQL job

SUCCESS: grouperLoaderType SQL_SIMPLE is a SQL type

SUCCESS: SQL database name is 'grouper' which uses the Grouper database connection: jdbc:oracle:thin:@localhost.wsu.edu:1521:MIM

NOTE: SQL query is set to 'select EXTERNALSYSTEMID as  subject_id from grouperpersonregistry where employeerole like '%Hourly%' '

SUCCESS: 'and groups' is not set

SUCCESS: Schedule type correctly set to: CRON

SUCCESS: Cron '0 42 15 * * ?' is set to: 'At 3:42 PM'

SUCCESS: Schedule interval is not set and schedule type is CRON

SUCCESS: SQL group query is not set!

SUCCESS: 'groups like' SQL config is not set

SUCCESS: Group types are not set

SUCCESS: Scheduling priority is a valid integer: 5 

######## CHECKING QUERIES ########

SUCCESS: Found DB profile for: 'grouper'

SUCCESS: Ran query, got 7461 results in 323ms

SUCCESS: Found SUBJECT_ID col

WARNING: Did not find col: SUBJECT_SOURCE_ID, this column improves performance

ERROR: Could not find subject by id ‘9809109029’!

edu.internet2.middleware.subject.SubjectNotFoundException: subject not found: 9809109029

 

Here is what I see from gsh:

 

groovy:000> subj=SubjectFinder.findByIdOrIdentifier("9809109029",false)

===> Subject id: 9809109029, sourceId: GrouperPersonRegistry, name: Something, Zack Matthew

groovy:000> subj.getAttributes()

===> [loginid:[zack.something]]

 

 

This is what I have in the grouper-loader.properties:

 

db.grouperpersonregistry.url = "jdbc:oracle:thin:@localhost.wsu.edu:1521:MIM

default.subject.source.id = grouperpersonregistry

 

This is what I have in the sources.xml (trimming some config lines to make it shorter)

 

    <source adapterClass="edu.internet2.middleware.grouper.subj.GrouperJdbcSourceAdapter2">

    <id>GrouperPersonRegistry</id>

    <name>Grouper Person Registry: JDBC Source Adapter</name>

     <type>person</type>

     <init-param>

        <param-name>jdbcConnectionProvider</param-name>

       <param-value>edu.internet2.middleware.grouper.subj.GrouperJdbcConnectionProvider</param-value>

     </init-param>

      <init-param>

       <param-name>dbTableOrView</param-name>

       <param-value>GrouperPersonRegistry</param-value>

     </init-param>

      <init-param>

       <param-name>subjectIdCol</param-name> <!-- immutable ID which can never be changed -->

       <param-value>EXTERNALSYSTEMID</param-value>

     </init-param>

… skipping nameCol, descriptionCol, lowerSearchCol,     

     <init-param>

       <param-name>subjectIdentifierCol0</param-name>

       <param-value>LOGINID</param-value>

     </init-param>

     <init-param>

       <param-name>subjectAttributeCol0</param-name>

       <param-value>LOGINID</param-value>

     </init-param>

     <init-param>

       <param-name>subjectAttributeName0</param-name>

       <param-value>LOGINID</param-value>

     </init-param>

     <init-param>

       <param-name>sortAttribute0</param-name>

       <param-value>LOGINID</param-value>

     </init-param>

     <init-param>

       <param-name>searchAttribute0</param-name>

       <param-value>LOGINID</param-value>

     </init-param>

   </source>

 

 

This is from subject.properties (trimmed version):

 

subjectApi.source.someConfigId.id = GrouperPersonRegistry

subjectApi.source.jdbc.id = GrouperPersonRegistry

subjectApi.source.jdbc.name = Grouper Person Registry

subjectApi.source.jdbc.types = person

subjectApi.source.jdbc.adapterClass = edu.internet2.middleware.grouper.subj.GrouperJdbcSourceAdapter2

 subjectApi.source.jdbc.param.jdbcConnectionProvider.value = edu.internet2.middleware.grouper.subj.GrouperJdbcConnectionProvider

 subjectApi.source.jdbc.param.emailAttributeName.value = USERPRINCIPALNAME

… 

subjectApi.source.jdbc.param.dbDriver.value = oracle.jdbc.driver.OracleDriver

subjectApi.source.jdbc.param.dbUrl.value = jdbc:oracle:thin:@localhost.wsu.edu:1521:MIM

subjectApi.source.jdbc.param.SubjectID_AttributeType.value = EXTERNALSYSTEMID

subjectApi.source.jdbc.param.Name_AttributeType.value = DISPLAYNAME

subjectApi.source.jdbc.param.Description_AttributeType.value = DESCRIPTION

subjectApi.source.jdbc.param.subjectVirtualAttribute_0_searchAttribute0.value = ${subject.displayname},${subjectUtils.defaultIfBlank(subject.getAttributeValue('LASTNAME'), "")},${subjectUtils.defaultIfBlank(subject.getAttributeValue('LOGINID'), "")},${subjectUtils.defaultIfBlank(subject.description, "")},${subjectUtils.defaultIfBlank(subject.getAttributeValue('USERPRINCIPALNAME'), "")}

subjectApi.source.jdbc.param.sortAttribute0.value = LASTNAME

subjectApi.source.jdbc.param.sortAttribute1.value = LOGINID

subjectApi.source.jdbc.param.searchAttribute0.value = searchAttribute0 

subjectApi.source.jdbc.param.useInClauseForIdAndIdentifier.value = true

subjectApi.source.jdbc.param.identifierAttributes.value = LOGINID

subjectApi.source.jdbc.param.subjectIdentifierAttribute0.value = LOGINID

subjectApi.source.jdbc.internalAttributes = searchAttribute0

 

 

So my question is, what am I missing in my subject.properties so that the loader can find the subjects for each person it finds?

thanks – dean

 

 

 

 

Dean Guenther                          
Washington State University    Phone:    509 335-0433
Pullman, WA. 99164-1222        fax:      509 335-0540
Identity and Access Management Manager

 




Archive powered by MHonArc 2.6.19.

Top of Page