Hi,
I've noticed a few people who want a REST method to trigger an external user directory sync. The primary use case, and the one for my company, is we sometime know when a change has been made that we want JIRA or Confluence to pickup and don't want to set a very quick auto-sync interval and don't want to wait for a really long one.
I wrote a rest service for Confluence that performed the task, and I'm trying to port it to JIRA. Here's the java portion I use for Confluence.
package com.keysight.confluence.support.rest; import java.util.Map; import java.util.List; import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import com.atlassian.plugins.rest.common.security.AnonymousAllowed; import com.atlassian.crowd.manager.directory.DirectoryManager; import com.atlassian.crowd.embedded.api.Directory; import com.atlassian.crowd.manager.directory.SynchronisationMode; @Path("/directory") public class ADRestService { private final DirectoryManager directoryManager; public ADRestService( DirectoryManager directoryManager) { this.directoryManager = directoryManager; } @GET @AnonymousAllowed @Path("sync") public Response syncAllDirectories( ){ String response = "<p>Syncing</p>"; List directories = directoryManager.findAllDirectories(); for( Directory directory : directoryManager.findAllDirectories() ){ try{ if( directoryManager.isSynchronisable( directory.getId() ) && !directoryManager.isSynchronising( directory.getId() )){ directoryManager.synchroniseCache( directory.getId(), SynchronisationMode.INCREMENTAL ); } } catch( Exception e ){ // com.atlassian.crowd.exception.DirectoryInstantiationException // com.atlassian.crowd.exception.OperationFailedException } } return Response.ok( new RestResponse( response ) ).build(); } }
In porting this to JIRA, I've discovered that I need to enable the jira-core artifact in the pom.xml otherwise it can't find the DirectoryManager. The comment in the pom created by Atlassian indicates that I should be doing this using methods in the jira-api. Does anybody know what those may be?
<!-- Add dependency on jira-core if you want access to JIRA implementation classes as well as the sanctioned API. --> <!-- This is not normally recommended, but may be required eg when migrating a plugin originally developed against JIRA 4.x --> <!-- <dependency> <groupId>com.atlassian.jira</groupId> <artifactId>jira-core</artifactId> <version>${jira.version}</version> <scope>provided</scope> </dependency> -->
please let me know about this java api to sync external directories.
Thanks
Hi Scott!
This kind of questions will get a better and faster answer if you post them in our Developer Community. There you'll find developers, product experts and vendors that will be able to help you with your question :)
Cheers,
Ana
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.