Uploaded image for project: 'Grouper'
  1. Grouper
  2. GRP-1887

Error JEXL when deleting groups with PSPNG

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 2.4.0.patch
    • None
    • provisioning
    • None
    • Grouper v2.3.0 with all PSPNG patches

    Description

      Hello,

      first of all, my configs :

      ## Alimentation des groupes dans la branche ou=Grouper,ou=education,o=gouv,c=fr
      changeLog.consumer.pspng_brancheGrouper.class = edu.internet2.middleware.grouper.pspng.PspChangelogConsumerShim
      changeLog.consumer.pspng_brancheGrouper.type = edu.internet2.middleware.grouper.pspng.LdapGroupProvisioner
      changeLog.consumer.pspng_brancheGrouper.quartzCron = 0 * * * * ?
      changeLog.consumer.pspng_brancheGrouper.ldapPoolName = aclille
      changeLog.consumer.pspng_brancheGrouper.memberAttributeName = uniqueMember
      changeLog.consumer.pspng_brancheGrouper.memberAttributeValueFormat = ${ldapUser.getDn()}
      changeLog.consumer.pspng_brancheGrouper.groupSearchBaseDn = ou=Grouper,ou=education,o=gouv,c=fr
      changeLog.consumer.pspng_brancheGrouper.allGroupsSearchFilter = objectclass=groupOfUniqueNames
      changeLog.consumer.pspng_brancheGrouper.singleGroupSearchFilter = (&(objectclass=groupOfUniqueNames)(cn=${group.name}))
      changeLog.consumer.pspng_brancheGrouper.groupSearchAttributes = cn,objectclass
      changeLog.consumer.pspng_brancheGrouper.groupCreationLdifTemplate = dn: cn=${group.name}||cn: ${group.name}||description: ${group.description}||ou: ${group.displayName}||objectclass: groupOfUniqueNames||objectclass: educationnationale
      changeLog.consumer.pspng_brancheGrouper.userSearchBaseDn = ou=ac-lille,ou=education,o=gouv,c=fr
      changeLog.consumer.pspng_brancheGrouper.userSearchFilter = uid=${subject.id}
      changeLog.consumer.pspng_brancheGrouper.grouperIsAuthoritative = true

       

      ## Alimentation des groupes dans la branche ou=listes,ou=ac-lille,ou=education,o=gouv,c=fr
      changeLog.consumer.pspng_brancheListes.class = edu.internet2.middleware.grouper.pspng.PspChangelogConsumerShim
      changeLog.consumer.pspng_brancheListes.type = edu.internet2.middleware.grouper.pspng.LdapGroupProvisioner
      changeLog.consumer.pspng_brancheListes.quartzCron = 0 * * * * ?
      changeLog.consumer.pspng_brancheListes.ldapPoolName = aclille
      changeLog.consumer.pspng_brancheListes.memberAttributeName = uniqueMember
      changeLog.consumer.pspng_brancheListes.memberAttributeValueFormat = ${ldapUser.getDn()}
      changeLog.consumer.pspng_brancheListes.groupSearchBaseDn = ou=listes,ou=ac-lille,ou=education,o=gouv,c=fr
      changeLog.consumer.pspng_brancheListes.allGroupsSearchFilter = (&(objectclass=groupOfUniqueNames)(typensi=grouper))
      changeLog.consumer.pspng_brancheListes.singleGroupSearchFilter = (&(objectclass=groupOfUniqueNames)(typensi=grouper)(cn=${group.extension}))
      changeLog.consumer.pspng_brancheListes.groupSearchAttributes = cn,objectclass,typensi
      changeLog.consumer.pspng_brancheListes.groupCreationLdifTemplate = dn: cn=${group.extension}||cn: ${group.extension}||objectclass: groupOfUniqueNames||objectclass: educationnationale||typensi: grouper
      changeLog.consumer.pspng_brancheListes.userSearchBaseDn = ou=ac-lille,ou=education,o=gouv,c=fr
      changeLog.consumer.pspng_brancheListes.userSearchFilter = uid=${subject.id}
      changeLog.consumer.pspng_brancheListes.grouperIsAuthoritative = true

      My problem is that everytime i delete a group, i get this error :

      2018-09-06 11:47:00,083: [DefaultQuartzScheduler_Worker-1] ERROR Provisioner.evaluateJexlExpression(657) -  - Jexl Expression SingleGroupSearchFilter '(&(objectclass=groupOfUniqueNames)(typensi=grouper)(cn=${group.extension}))' could not be evaluated for subject 'null/null' and group 'app:listes-ldap:test-liste(PIT)/null' which used variableMap '{userSearchBaseDn=ou=ac-lille,ou=education,o=gouv,c=fr, provisionerType=LdapGroupProvisioner, groupCreationBaseDn=ou=listes,ou=ac-lille,ou=education,o=gouv,c=fr, utils=edu.internet2.middleware.grouper.pspng.PspJexlUtils@378a71d0, pitGroup=edu.internet2.middleware.grouper.pit.PITGroup@6ed63ff3, stemAttributes={}, provisionerName=pspng_brancheListes, name=app:listes-ldap:test-liste, groupSearchBaseDn=ou=listes,ou=ac-lille,ou=education,o=gouv,c=fr, groupAttributes={}}'
      edu.internet2.middleware.grouper.exception.ExpressionLanguageMissingVariableException: variable 'group.extension' is not defined in script: 'group.extension'
              at edu.internet2.middleware.grouper.util.GrouperUtil.substituteExpressionLanguage(GrouperUtil.java:9372)
              at edu.internet2.middleware.grouper.pspng.Provisioner.evaluateJexlExpression(Provisioner.java:619)
              at edu.internet2.middleware.grouper.pspng.LdapGroupProvisioner.getGroupLdapFilter(LdapGroupProvisioner.java:580)
              at edu.internet2.middleware.grouper.pspng.LdapGroupProvisioner.fetchTargetSystemGroups(LdapGroupProvisioner.java:530)
              at edu.internet2.middleware.grouper.pspng.Provisioner.fetchTargetSystemGroupsInBatches(Provisioner.java:858)
              at edu.internet2.middleware.grouper.pspng.Provisioner.prepareGroupCache(Provisioner.java:817)
              at edu.internet2.middleware.grouper.pspng.Provisioner.startProvisioningBatch(Provisioner.java:546)
              at edu.internet2.middleware.grouper.pspng.Provisioner.provisionBatchOfItems(Provisioner.java:1640)
              at edu.internet2.middleware.grouper.pspng.PspChangelogConsumerShim.processChangeLogEntries(PspChangelogConsumerShim.java:71)
              at edu.internet2.middleware.grouper.changeLog.ChangeLogHelper.processRecords(ChangeLogHelper.java:245)
              at edu.internet2.middleware.grouper.app.loader.GrouperLoaderType$5.runJob(GrouperLoaderType.java:638)
              at edu.internet2.middleware.grouper.app.loader.GrouperLoaderJob.runJob(GrouperLoaderJob.java:465)
              at edu.internet2.middleware.grouper.app.loader.GrouperLoaderJob.execute(GrouperLoaderJob.java:345)
              at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
              at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
      Caused by: org.apache.commons.jexl2.JexlException: edu.internet2.middleware.grouper.util.GrouperUtil.substituteExpressionLanguage@9352![0,15]: 'group.extension;' undefined variable group.extension
              at org.apache.commons.jexl2.Interpreter.visit(Interpreter.java:1064)
              at org.apache.commons.jexl2.parser.ASTReference.jjtAccept(ASTReference.java:18)
              at org.apache.commons.jexl2.Interpreter.interpret(Interpreter.java:162)
              at org.apache.commons.jexl2.ExpressionImpl.evaluate(ExpressionImpl.java:64)
              at edu.internet2.middleware.grouper.util.GrouperUtil.substituteExpressionLanguage(GrouperUtil.java:9358)
              ... 14 more
      2018-09-06 11:47:00,092: [DefaultQuartzScheduler_Worker-1] WARN  Provisioner.fetchTargetSystemGroupsInBatches(862) -  - Batch-fetching group information failed. Trying to fetch information for each group individually
      edu.internet2.middleware.grouper.pspng.PspException: Jexl evaluation failed: variable 'group.extension' is not defined in script: 'group.extension'
              at edu.internet2.middleware.grouper.pspng.Provisioner.evaluateJexlExpression(Provisioner.java:662)
              at edu.internet2.middleware.grouper.pspng.LdapGroupProvisioner.getGroupLdapFilter(LdapGroupProvisioner.java:580)
              at edu.internet2.middleware.grouper.pspng.LdapGroupProvisioner.fetchTargetSystemGroups(LdapGroupProvisioner.java:530)
              at edu.internet2.middleware.grouper.pspng.Provisioner.fetchTargetSystemGroupsInBatches(Provisioner.java:858)
              at edu.internet2.middleware.grouper.pspng.Provisioner.prepareGroupCache(Provisioner.java:817)
              at edu.internet2.middleware.grouper.pspng.Provisioner.startProvisioningBatch(Provisioner.java:546)
              at edu.internet2.middleware.grouper.pspng.Provisioner.provisionBatchOfItems(Provisioner.java:1640)
              at edu.internet2.middleware.grouper.pspng.PspChangelogConsumerShim.processChangeLogEntries(PspChangelogConsumerShim.java:71)
              at edu.internet2.middleware.grouper.changeLog.ChangeLogHelper.processRecords(ChangeLogHelper.java:245)
              at edu.internet2.middleware.grouper.app.loader.GrouperLoaderType$5.runJob(GrouperLoaderType.java:638)
              at edu.internet2.middleware.grouper.app.loader.GrouperLoaderJob.runJob(GrouperLoaderJob.java:465)
              at edu.internet2.middleware.grouper.app.loader.GrouperLoaderJob.execute(GrouperLoaderJob.java:345)
              at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
              at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
      2018-09-06 11:47:00,093: [DefaultQuartzScheduler_Worker-1] DEBUG LdapGroupProvisioner.getLdapAttributesToFetch(573) -  - Fetching without membership attribute
      2018-09-06 11:47:00,094: [DefaultQuartzScheduler_Worker-1] ERROR Provisioner.evaluateJexlExpression(657) -  - Jexl Expression SingleGroupSearchFilter '(&(objectclass=groupOfUniqueNames)(typensi=grouper)(cn=${group.extension}))' could not be evaluated for subject 'null/null' and group 'app:listes-ldap:test-liste(PIT)/null' which used variableMap '{userSearchBaseDn=ou=ac-lille,ou=education,o=gouv,c=fr, provisionerType=LdapGroupProvisioner, groupCreationBaseDn=ou=listes,ou=ac-lille,ou=education,o=gouv,c=fr, utils=edu.internet2.middleware.grouper.pspng.PspJexlUtils@1037113f, pitGroup=edu.internet2.middleware.grouper.pit.PITGroup@6ed63ff3, stemAttributes={}, provisionerName=pspng_brancheListes, name=app:listes-ldap:test-liste, groupSearchBaseDn=ou=listes,ou=ac-lille,ou=education,o=gouv,c=fr, groupAttributes={}}'
      edu.internet2.middleware.grouper.exception.ExpressionLanguageMissingVariableException: variable 'group.extension' is not defined in script: 'group.extension'
              at edu.internet2.middleware.grouper.util.GrouperUtil.substituteExpressionLanguage(GrouperUtil.java:9372)
              at edu.internet2.middleware.grouper.pspng.Provisioner.evaluateJexlExpression(Provisioner.java:619)
              at edu.internet2.middleware.grouper.pspng.LdapGroupProvisioner.getGroupLdapFilter(LdapGroupProvisioner.java:580)
              at edu.internet2.middleware.grouper.pspng.LdapGroupProvisioner.fetchTargetSystemGroups(LdapGroupProvisioner.java:530)
              at edu.internet2.middleware.grouper.pspng.Provisioner.fetchTargetSystemGroup(Provisioner.java:1037)
              at edu.internet2.middleware.grouper.pspng.Provisioner.fetchTargetSystemGroupsInBatches(Provisioner.java:867)
              at edu.internet2.middleware.grouper.pspng.Provisioner.prepareGroupCache(Provisioner.java:817)
              at edu.internet2.middleware.grouper.pspng.Provisioner.startProvisioningBatch(Provisioner.java:546)
              at edu.internet2.middleware.grouper.pspng.Provisioner.provisionBatchOfItems(Provisioner.java:1640)
              at edu.internet2.middleware.grouper.pspng.PspChangelogConsumerShim.processChangeLogEntries(PspChangelogConsumerShim.java:71)
              at edu.internet2.middleware.grouper.changeLog.ChangeLogHelper.processRecords(ChangeLogHelper.java:245)
              at edu.internet2.middleware.grouper.app.loader.GrouperLoaderType$5.runJob(GrouperLoaderType.java:638)
              at edu.internet2.middleware.grouper.app.loader.GrouperLoaderJob.runJob(GrouperLoaderJob.java:465)
              at edu.internet2.middleware.grouper.app.loader.GrouperLoaderJob.execute(GrouperLoaderJob.java:345)
              at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
              at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
      Caused by: org.apache.commons.jexl2.JexlException: edu.internet2.middleware.grouper.util.GrouperUtil.substituteExpressionLanguage@9352![0,15]: 'group.extension;' undefined variable group.extension
              at org.apache.commons.jexl2.Interpreter.visit(Interpreter.java:1064)
              at org.apache.commons.jexl2.parser.ASTReference.jjtAccept(ASTReference.java:18)
              at org.apache.commons.jexl2.Interpreter.interpret(Interpreter.java:162)
              at org.apache.commons.jexl2.ExpressionImpl.evaluate(ExpressionImpl.java:64)
              at edu.internet2.middleware.grouper.util.GrouperUtil.substituteExpressionLanguage(GrouperUtil.java:9358)
              ... 15 more
      2018-09-06 11:47:00,095: [DefaultQuartzScheduler_Worker-1] ERROR Provisioner.fetchTargetSystemGroupsInBatches(871) -  - Problem fetching information on group 'app:listes-ldap:test-liste(PIT)'
      edu.internet2.middleware.grouper.pspng.PspException: Jexl evaluation failed: variable 'group.extension' is not defined in script: 'group.extension'
              at edu.internet2.middleware.grouper.pspng.Provisioner.evaluateJexlExpression(Provisioner.java:662)
              at edu.internet2.middleware.grouper.pspng.LdapGroupProvisioner.getGroupLdapFilter(LdapGroupProvisioner.java:580)
              at edu.internet2.middleware.grouper.pspng.LdapGroupProvisioner.fetchTargetSystemGroups(LdapGroupProvisioner.java:530)
              at edu.internet2.middleware.grouper.pspng.Provisioner.fetchTargetSystemGroup(Provisioner.java:1037)
              at edu.internet2.middleware.grouper.pspng.Provisioner.fetchTargetSystemGroupsInBatches(Provisioner.java:867)
              at edu.internet2.middleware.grouper.pspng.Provisioner.prepareGroupCache(Provisioner.java:817)
              at edu.internet2.middleware.grouper.pspng.Provisioner.startProvisioningBatch(Provisioner.java:546)
              at edu.internet2.middleware.grouper.pspng.Provisioner.provisionBatchOfItems(Provisioner.java:1640)
              at edu.internet2.middleware.grouper.pspng.PspChangelogConsumerShim.processChangeLogEntries(PspChangelogConsumerShim.java:71)
              at edu.internet2.middleware.grouper.changeLog.ChangeLogHelper.processRecords(ChangeLogHelper.java:245)
              at edu.internet2.middleware.grouper.app.loader.GrouperLoaderType$5.runJob(GrouperLoaderType.java:638)
              at edu.internet2.middleware.grouper.app.loader.GrouperLoaderJob.runJob(GrouperLoaderJob.java:465)
              at edu.internet2.middleware.grouper.app.loader.GrouperLoaderJob.execute(GrouperLoaderJob.java:345)
              at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
              at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)

      It seems there is a problem with pspng_brancheListes provisioner and group.extension variable.
      Also, the group are not deleted in the LDAP when the groups match the branchListe provisioner (provision_to = pspng_brancheListes)
      And when the groups match the other provision config (provision_to = pspng_brancheGrouper), the group are correctly deleted from the LDAP but i still get the error.

      Thanks for your help,
      Yoann

       

      Attachments

        Issue Links

          Activity

            People

              bert.beelindgren@at.internet2.edu Bert Bee-Lindgren (gatech.edu)
              ydelattre2 Yoann Delattre (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: