Just a heads up: On March 24, 2025, starting at 4:30pm CDT / 19:30 UTC, the site will be undergoing scheduled maintenance for a few hours. During this time, the site might be unavailable for a short while. Thanks for your patience.

×
Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Crowd Delegated directory pruning plugin not working

Prachi Chandak
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
March 29, 2018

I have install the crowd Dlegated Directory Pruning Plugin to deactive the users no longer available in LDAP.

I dont see it working and i am not sure how frequently it runs. Did anyone use this plugin?

Thanks

1 answer

1 vote
Ryan Kearney
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
March 29, 2018

From the admin area, under the manage plugin section, you should be able to access a page that has a checkbox that shows whether or not pruning is enabled. Try clicking inside of the plugin listing to see the option or checking the left hand side of the page.

Tom Bell April 2, 2018

Hi Ryan,

Thanks for your response!

We do have pruning enabled for our selected delegate directories but there's no indication that it's working and users who have left the company and no longer have an LDAP entry are still shown as active in the directory. 

Have you had any luck using this plugin?  We're running Crowd 3.1.3.

Cheers,

Tom

Tom Bell April 2, 2018
2018-04-02 15:23:00,009 Caesium-2-2 INFO [directory.pruning.jobs.DelegatedDirectoryPruningJob] Pruning users for directory 'NF Delegate'
2018-04-02 15:23:00,010 Caesium-2-2 INFO [directory.pruning.jobs.DelegatedDirectoryPruningJob] User deletion while pruning is disabled for directory '{}', users not present in remote directory will be deactivated
2018-04-02 15:23:00,043 Caesium-2-2 ERROR [atlassian.scheduler.core.JobLauncher] Scheduled job with ID 'delegatedDirCleanupJob' failed
java.lang.NullPointerException
at com.atlassian.crowd.directory.ldap.util.GuidHelper.encodeGUIDForSearch(GuidHelper.java:54)
at com.atlassian.crowd.search.ldap.filter.EqualsExternalIdFilter.encodeValue(EqualsExternalIdFilter.java:25)
at org.springframework.ldap.filter.CompareFilter.<init>(CompareFilter.java:36)
at org.springframework.ldap.filter.EqualsFilter.<init>(EqualsFilter.java:40)
at com.atlassian.crowd.search.ldap.filter.EqualsExternalIdFilter.<init>(EqualsExternalIdFilter.java:13)
at com.atlassian.crowd.search.ldap.ActiveDirectoryQueryTranslaterImpl.getStringTermEqualityFilter(ActiveDirectoryQueryTranslaterImpl.java:66)
at com.atlassian.crowd.search.ldap.LDAPQueryTranslaterImpl.stringTermRestrictionAsFilter(LDAPQueryTranslaterImpl.java:158)
at com.atlassian.crowd.search.ldap.LDAPQueryTranslaterImpl.searchRestrictionAsFilter(LDAPQueryTranslaterImpl.java:60)
at com.atlassian.crowd.search.ldap.LDAPQueryTranslaterImpl.multiTermRestrictionAsFilter(LDAPQueryTranslaterImpl.java:78)
at com.atlassian.crowd.search.ldap.LDAPQueryTranslaterImpl.searchRestrictionAsFilter(LDAPQueryTranslaterImpl.java:68)
at com.atlassian.crowd.search.ldap.LDAPQueryTranslaterImpl.asLDAPFilter(LDAPQueryTranslaterImpl.java:40)
at com.atlassian.crowd.directory.SpringLDAPConnector.searchUserObjects(SpringLDAPConnector.java:623)
at com.atlassian.crowd.directory.SpringLDAPConnector.searchUsers(SpringLDAPConnector.java:974)
at com.atlassian.labs.crowd.directory.pruning.jobs.DelegatedDirectoryPruningJob.loadUsersByExternalIds(DelegatedDirectoryPruningJob.java:202)
at com.atlassian.labs.crowd.directory.pruning.jobs.DelegatedDirectoryPruningJob.processBatch(DelegatedDirectoryPruningJob.java:180)
at com.atlassian.labs.crowd.directory.pruning.jobs.DelegatedDirectoryPruningJob.deleteUsersNotInRemoteDirectory(DelegatedDirectoryPruningJob.java:136)
at java.util.ArrayList.forEach(ArrayList.java:1249)
at com.atlassian.labs.crowd.directory.pruning.jobs.DelegatedDirectoryPruningJob.lambda$runJob$0(DelegatedDirectoryPruningJob.java:110)
at com.atlassian.sal.core.transaction.HostContextTransactionTemplate$1.doInTransaction(HostContextTransactionTemplate.java:25)
at com.atlassian.sal.spring.component.SpringHostContextAccessor$1.doInTransaction(SpringHostContextAccessor.java:88)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
at com.atlassian.sal.spring.component.SpringHostContextAccessor.doInTransaction(SpringHostContextAccessor.java:82)
at sun.reflect.GeneratedMethodAccessor888.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
at com.sun.proxy.$Proxy146.doInTransaction(Unknown Source)
at sun.reflect.GeneratedMethodAccessor888.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:136)
at com.sun.proxy.$Proxy146.doInTransaction(Unknown Source)
at com.atlassian.sal.core.transaction.HostContextTransactionTemplate.execute(HostContextTransactionTemplate.java:21)
at sun.reflect.GeneratedMethodAccessor920.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
at com.sun.proxy.$Proxy335.execute(Unknown Source)
at com.atlassian.labs.crowd.directory.pruning.jobs.DelegatedDirectoryPruningJob.runJob(DelegatedDirectoryPruningJob.java:108)
at com.atlassian.scheduler.core.JobLauncher.runJob(JobLauncher.java:153)
at com.atlassian.scheduler.core.JobLauncher.launchAndBuildResponse(JobLauncher.java:118)
at com.atlassian.scheduler.core.JobLauncher.launch(JobLauncher.java:97)
at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.launchJob(CaesiumSchedulerService.java:443)
at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeClusteredJob(CaesiumSchedulerService.java:438)
at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeClusteredJobWithRecoveryGuard(CaesiumSchedulerService.java:462)
at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeQueuedJob(CaesiumSchedulerService.java:390)
at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService$1.consume(CaesiumSchedulerService.java:285)
at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService$1.consume(CaesiumSchedulerService.java:282)
at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeJob(SchedulerQueueWorker.java:65)
at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeNextJob(SchedulerQueueWorker.java:59)
at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.run(SchedulerQueueWorker.java:34)
at java.lang.Thread.run(Thread.java:745)
Tom Bell April 3, 2018

Found the problem.  The plugin was choking on userid entries with a null external_id.  Not sure how these accounts got into our delegate directory but we're working on a fix for those.

Ryan Kearney
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
April 4, 2018

Nice! Glad to hear it. Never heard of of that happening!

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events