How do I find the logged in user Bamboo?

Sergey Obozhin August 29, 2017

I create plugin for bamboo and me need find the logged username in Bamboo.

How get her?

I finding https://developer.atlassian.com/confdev/development-resources/confluence-developer-faq/how-do-i-find-the-logged-in-user

but for Bamboo doesn't work.

Please help.

2 answers

1 vote
Jobin Kuruvilla [Adaptavist]
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.
August 29, 2017

You can use BambooAuthenticationContext to retrieve the current user.

Sergey Obozhin August 29, 2017

You have an example?

Jobin Kuruvilla [Adaptavist]
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.
August 30, 2017

Unfortunately, I do not have anything that I can share. It is pretty straight forward though. Inject the service like any other service and invoke the getUser method to retrieve the logged in user.

Sergey Obozhin August 30, 2017

getUser returns - null. It's doesn't work

Alexey Chystoprudov
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
August 30, 2017

What's the scope of your plugin, when it works?

If it has UI interaction then BambooAuthenticationContext will have logged in user information, if there's some background activity, there will be no user information

Sergey Obozhin August 30, 2017

Plugin send message to SOAP server and receives a response that outputs to the log. For authorization in the web service it is necessary to get the user name authorized in bamboo and run the deploy plan with the plugin task

Alexey Chystoprudov
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
August 30, 2017

It means user starts deployment so you should begin from that point.

Plugin should add information about logged in user who started deployment, this data is stored in CommonContext which is available for you plugin task if it implements  com.atlassian.bamboo.task.RuntimeTaskDataProvider interface (as a reference on implementation and configuration see com.atlassian.bamboo.plugins.artifact.ArtifactDownloaderRuntimeDataProvider). During this phase you put username to DeploymentContext and then can use this information on execution phase. 

When your plugin task is being executed at agent it should read username from runtimeContext (taskContext.getRuntimeTaskContext()) and use for authorization to SOAP server

Sergey Obozhin August 30, 2017

getRuntimeTaskContext is deprecated

Sergey Obozhin August 31, 2017

I got the username so:

final String nameForSentence = deploymentTaskContext.getDeploymentContext().getTriggerReason().getNameForSentence();
String userLogin = nameForSentence.substring(nameForSentence.lastIndexOf(" ")+1);

Alexey Chystoprudov
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
August 31, 2017

Username is provided only by ManualBuilTriggerReason. So you may check that reason is of given type and then call reason.getUserName()

0 votes
Sergey Obozhin August 30, 2017

getRuntimeTaskContext is deprecated

Alexey Chystoprudov
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
August 31, 2017

It's deprecated for com.atlassian.bamboo.v2.build.CommonContext, but not for com.atlassian.bamboo.task.CommonTaskContext

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events