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

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root

Avatar

1 badge earned

Collect

Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!

Challenges
Coins

Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.

Recognition
Ribbon

Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!

Leaderboard

Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,458,724
Community Members
 
Community Events
176
Community Groups

Crowd scripting synchronization

Does anyone have a solution for being able to synchronize directories in crowd prgrammatically? It can be over HTML, on the commandline in BASH, anything. We need to have a sync called immediately as part of an integrated workstream and a delay waiting for a scheduled/regular sync is not acceptable.

1 answer

0 votes
Gaurav Atlassian Team Jun 19, 2019

Hi @Richard Heasman

Right now there is no such REST API available in Crowd, but speaking technically you can do it using HTML manipulation, and hitting a certain URL.

I cannot provide you details about above both, but you can check out you Crowd's directory view, and capture the request which it makes to backend, when you hit 'Synchronize'

 

Thanks,

Gaurav Agarwal

Thanks Gaurav. I have been trying to do this for some time; each time I hit the URL I get a login error. I have set up cookies / sessions / all manner of authentication and still cannot get this authorised. Do you have any idea about authorising this call?

 

Thanks for your response

Hi @Richard Heasman

 

Can you paste the HAR files of the request that you are making, so that I can inspect and tell you what's wrong. 

curl -X GET -u "adminUsr:adminPW" --silent --output /dev/null -c - 'https://jiraURL.com/login' --insecure

Output is:

# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

#HttpOnly_domain.com FALSE /jira FALSE 0 JSESSIONID JSESSVALUE
#HttpOnly_.domain.com TRUE / FALSE 0 crowd.token_key CTOKENVALUE
domain.com FALSE /jira FALSE 0 atlassian.xsrf.token AXTOKENVALUE

 

Then using those values:


curl -X POST -H "Accept: application/json" -b 'JSESSIONID=$JSESSVALUE;crowd.token_key=$CTOKENVALUE;atlassian.xsrf.token=$AXTOKENVALUE' 'https://crowdURL.com/crowd/console/secure/directory/synchconnectorcache!execute.action?ID=6553602&atl_token=$CTOKENVALUE' --insecure

Gaurav Atlassian Team Jun 20, 2019

Hi @Richard Heasman ,

One problem, that I can spot right away is that you are logging in to Jira, but using the JSESSIONID, and AXTOKENVALUE of Jira in Crowd.

It will not work, Crowd is a separate web application, you can use the CTOKENVALUE given by Jira to login to Crowd, but you would need to get the HTML page of directory view in Crowd, and then capture the XSRF token and JSESSIONID from this page's cookies header, and then use it in the final call you are making.

 

Thanks,

Gaurav

Thanks Guarav - yes I know it points at JIRA, I found another post to indicate this was the way to go.. Ok then - following your guidance, I've tried this:

 

curl -X GET -u "adminUsr:adminPW" --silent --output /dev/null -c - 'https://CrowdURL/crowd/console/secure/directory/synchconnectorcache' --insecure

response:
# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

#HttpOnly_DOMAIN.COM FALSE /crowd FALSE 0 JSESSIONID JSESSVALUE

 

curl -X POST -H "Accept: application/json" -b 'JSESSIONID=$JSESSVALUE 'https://CrowdURL/crowd/console/secure/directory/synchconnectorcache!execute.action?ID=6553602&atl_token=$JSESSVALUE' -vvv --insecure

Still nothing.

I accept I'm a little green in the web transfer area - would you be able to give me an example?

Suggest an answer

Log in or Sign up to answer
TAGS

Atlassian Community Events