Skip to Content.
Sympa Menu

grouper-users - RE: [grouper-users] Class not found error with PSPNG/ Grouper 2.3.0

Subject: Grouper Users - Open Discussion List

List archive

RE: [grouper-users] Class not found error with PSPNG/ Grouper 2.3.0


Chronological Thread 
  • From: "Hyzer, Chris" <>
  • To: Mark Cairney <>, "" <>
  • Subject: RE: [grouper-users] Class not found error with PSPNG/ Grouper 2.3.0
  • Date: Tue, 5 Dec 2017 14:17:56 +0000
  • Accept-language: en-US
  • Authentication-results: spf=none (sender IP is ) ;
  • Ironport-phdr: 9a23:NlWxMBJs0PpbgDlvptmcpTZWNBhigK39O0sv0rFitYgXKvz8rarrMEGX3/hxlliBBdydsKMUzbKO+4nbGkU4qa6bt34DdJEeHzQksu4x2zIaPcieFEfgJ+TrZSFpVO5LVVti4m3peRMNQJW2aFLduGC94iAPERvjKwV1Ov71GonPhMiryuy+4ZPebgFLiTanfb9+MAi9oBnMuMURnYZsMLs6xAHTontPdeRWxGdoKkyWkh3h+Mq+/4Nt/jpJtf45+MFOTav1f6IjTbxFFzsmKHw65NfqtRbYUwSC4GYXX3gMnRpJBwjF6wz6Xov0vyDnuOdxxDWWMMvrRr0vRz+s87lkRwPpiCcfNj427mfXitBrjKlGpB6tvgFzz5LIbI2QMvd1Y6HTcs4ARWdZXshfSTFPAp+yYYUMAeoOP+dYoJXyqVQBtha+GRKjCP/zxjNUmnP736s32PkhHwHc2wwgGsoDvHrWotT1NaYdT/q1wLHVxjjdb/NWwzb96JPGfhs8pvyMWK5/ccrRyEguCQzFlE6dqY3+PzyJzOgNrnCb4PRmVeKpkWIotRx+oiW2y8oql4LHiIUVylXe+iV4xoY4PdK4SFR8Yd65CJtfqTuaO5FsTcM6W2FlvjsxxL4euZOjYiQF0ogrywPaZvCaboSE/xfuVOieLDtkmH5ofbCyiAi9/EWjz+DxU9e43EpJoyZdj9XBuGwB2wbX58SaUPdx4Fqt1DKV2wzO6OxJIEY5nrfBJZE72L4/jJ8TvFzDHiDonEX2i7ebeF049+av9+jqbKzqq4GFOYNpkw3+Nb8hldKlDeQ/LwgOQ3OU+eOh1L3l4EL1Wq1KjucxkqnFrp/VOdgbpq++Aw9TyIoj7Au/Dyui0NQfmnkHL0hJdw6Aj4jsI13OIfb4Aumjg1m0jjtk3ezKMqDkD5nQM3TPjbLsfbhy5kJA1AY+yNJS6IxbB7wCJf/+X1H9uMDbAxMhNgy72efnCNFz1oMEXmKPB7eUMKbOvl+I5uMuIveDZJUOtTb8MPgq++TijWIhmVADe6mp24EbZ26lEfR7O0mZe2bjgs8dEWcWuQozVOPqiEeFUT5Of3a9Qbg86igmCIK9E4jDXJutjaeF3Ce6BZ1WentGBk6WHXfpcYWER+kDaDiUIsB/jjwIS6KtRJE82hGz50fGzO9CJ/DXsgYRtIjl2ck9s8jajxJ03jV1FcKQwkmAQyd9lSUVRGlylOpwu0tg0lqZlLVjjuZDPd1V+/5TVAomb9jRw/EwQ4T9QAXcZtqTDUu9T8+9KTA3Ut8rxdISOQBwF8j03T7Z2C//SZ8EhbGRQNQf8rjdxDK5c8N2y2fU2bMJjkItBNZXOGugwKNz6l6AVMbyj0yFmvPyJuwn1ynX+TLGlDLWsQ==
  • Spamdiagnosticmetadata: NSPM
  • Spamdiagnosticoutput: 1:99

In log4j.properties, log at WARN or maybe even INFO level if you like...

-----Original Message-----
From:


[mailto:]
On Behalf Of Mark Cairney
Sent: Tuesday, December 05, 2017 7:27 AM
To:

Subject: Re: [grouper-users] Class not found error with PSPNG/ Grouper 2.3.0

Hi,

Ignore this for now- the .jar files had been deleted. Re-adding them to
grouper.api/lib/custom has allowed it to proceed.

The grouper_error.log file is now filled with messages like:
2017-12-05 12:23:20,518: [Thread-17] DEBUG
Provisioner.evaluateJexlExpression(382) - - Evaluating Jexl expression:
${utils.containedWithin(provisionerName,
stemAttributes['etc:attribute:userData:provision_to'],
groupAttributes['etc:attribute:userData:provision_to']) &&
!utils.containedWithin(provisionerName,
stemAttributes['etc:attribute:userData:do_not_provision_to'],
groupAttributes['etc:attribute:userData:do_not_provision_to'])}

I suspect I may need to get back to you to figure out an appropriate
filter...


On 05/12/17 10:12, Mark Cairney wrote:
> Hi,
>
> I'm just starting to build my config for PSPNG but am getting the
> following ClassNotFound error and I'm not sure if this is indicative of
> an error in the config or with the Grouper installation. The
> grouper-pspng .jar files weren't present after the upgrade so I naively
> dropped them into grouper.api-2.3.0/lib/custom
>
> Grouper error: problem finding class: changeLog.consumer.pspng_AD.class
> from grouper-loader.properties:
> edu.internet2.middleware.grouper.pspng.PspChangelogConsumerShim,
> java.lang.RuntimeException: Problem loading class:
> edu.internet2.middleware.grouper.pspng.PspChangelogConsumerShim
> at
> edu.internet2.middleware.grouper.util.GrouperUtil.forName(GrouperUtil.java:1813)
> at
> edu.internet2.middleware.grouper.misc.GrouperCheckConfig.checkGrouperLoaderConsumers(GrouperCheckConfig.java:1091)
> at
> edu.internet2.middleware.grouper.app.loader.GrouperLoader.main(GrouperLoader.java:116)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:483)
> at
> edu.internet2.middleware.grouper.app.gsh.GrouperShell.handleSpecialCase(GrouperShell.java:209)
> at
> edu.internet2.middleware.grouper.app.gsh.GrouperShell.main(GrouperShell.java:149)
> at
> edu.internet2.middleware.grouper.app.gsh.GrouperShellWrapper.main(GrouperShellWrapper.java:31)
> Caused by: java.lang.ClassNotFoundException:
> edu.internet2.middleware.grouper.pspng.PspChangelogConsumerShim
> at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:259)
> at
> edu.internet2.middleware.grouper.util.GrouperUtil.forName(GrouperUtil.java:1811)
> ... 9 more
>
> My grouper-loader.properties file contains the following (I've removed
> the servers and credentials from the pool sections:
>
> # CAUTH LDAP Pool
> ldap.cauth.ldapUrl = ldaps://********
> ldap.cauth.bindDn = ********
> ldap.cauth.bindCredential = ********!
>
> # AD LDAP Pool
> ldap.AD.ldapUrl = ldap://********
> ldap.AD.bindDn = ********
> ldap.AD.bindCredential =********
>
> # CAUTH GROUPS:
> changeLog.consumer.pspng_cauth.class =
> edu.internet2.middleware.grouper.pspng.PspChangelogConsumerShim
> changeLog.consumer.pspng_cauth.type =
> edu.internet2.middleware.grouper.pspng.LdapGroupProvisioner
> changeLog.consumer.pspng_cauth.quartzCron = 0 * * * * ?
> changeLog.consumer.pspng_cauth.ldapPoolName = cauth
> changeLog.consumer.pspng_cauth.memberAttributeName = member
> changeLog.consumer.pspng_cauth.memberAttributeValueFormat =
> ${ldapUser.getDn()}
> changeLog.consumer.pspng_cauth.groupSearchBaseDn =
> ou=grouper2,dc=authorise-dev,dc=ed,dc=ac,dc=uk
> changeLog.consumer.pspng_cauth.allGroupsSearchFilter =
> objectclass=posixGroup
> changeLog.consumer.pspng_cauth.singleGroupSearchFilter =
> (&(objectclass=posixGroup)(cn=${group.name}))
> # Obviously, gidNumber should be based on a grouper-group attribute
> changeLog.consumer.pspng_cauth.groupCreationLdifTemplate = dn:
> cn=${group.name},${utils.bushyDn(group.name, "cn",
> "ou")},ou=grouper2,dc=authorise-dev,dc=ed,dc=ac,dc=uk||cn:
> ${group.name}||objectclass: posixGroup||objectclass:
> groupOfNames||gidNumber: ${group.gid}
> changeLog.consumer.pspng_cauth.userSearchBaseDn =
> ou=people,ou=central,dc=authorise-dev,dc=ed,dc=ac,dc=uk
> changeLog.consumer.pspng_cauth.userSearchFilter = uid=${subject.id}
> changeLog.consumer.pspng_cauthsvn status.isActiveDirectory = FALSE
>
> # AD GROUPS:
> changeLog.consumer.pspng_AD.class =
> edu.internet2.middleware.grouper.pspng.PspChangelogConsumerShim
> changeLog.consumer.pspng_AD.type =
> edu.internet2.middleware.grouper.pspng.LdapGroupProvisioner
> changeLog.consumer.pspng_AD.quartzCron = 0 * * * * ?
> changeLog.consumer.pspng_AD.ldapPoolName = AD
> changeLog.consumer.pspng_AD.memberAttributeName = member
> changeLog.consumer.pspng_AD.memberAttributeValueFormat = ${ldapUser.getDn()}
> changeLog.consumer.pspng_AD.groupSearchBaseDn =
> OU=grouper,DC=adtest,DC=ed,DC=ac,DC=uk
> changeLog.consumer.pspng_AD.allGroupsSearchFilter = objectclass=group
> changeLog.consumer.pspng_AD.singleGroupSearchFilter =
> (&(objectclass=group)(cn=${group.name}))
> # Obviously, gidNumber should be based on a grouper-group attribute
> changeLog.consumer.pspng_AD.groupCreationLdifTemplate = dn:
> cn=${group.name}||cn: ${group.name}||objectclass:
> posixGroup||objectclass: groupOfNames||gidNumber: ${group.gid}
> changeLog.consumer.pspng_AD.userSearchBaseDn =
> OU=UoE,DC=adtest,DC=ed,DC=ac,DC=uk
> changeLog.consumer.pspng_AD.userSearchFilter = samaccountname=${subject.id}
> changeLog.consumer.pspng_AD.isActiveDirectory = TRUE
>
> #FULL SYNC
> changeLog.psp.fullSync.class =
> edu.internet2.middleware.grouper.pspng.FullSyncStarter
> changeLog.psp.fullSync.quartzCron = 0 0 5 * * ?
> # This happens in the background, so should usually be enabled, and
> should _definitely_
> # be enabled when new provisioners are added
> changeLog.psp.fullSync.runAtStartup = true
>
>

--
/****************************

Mark Cairney
ITI Enterprise Services
Information Services
University of Edinburgh

Tel: 0131 650 6565
Email:

PGP: 0x435A9621

*******************************/

The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.



Archive powered by MHonArc 2.6.19.

Top of Page