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,554,975
Community Members
 
Community Events
184
Community Groups

How Bamboo server encrypts password when entered in DeployOnTomcat Task

I am using Bamboo Spec v6.8 to create Plan and task to checkout, maven build and deploy on remote Tomcat server using following way:

Task deployTask = new AnyTask(
new AtlassianModule("com.atlassian.bamboo.plugins.tomcat.bamboo-tomcat-plugin:deployAppTask"))
.description("DeployOnTomcat")
.configuration(new MapBuilder().put("appVersion", "").put("tomcatUrl", MY_TOMCAT_URL)
.put("warFilePath", MY_WAR_FILE_PATH)
.put("tomcatUsername", MY_TOMCAT_USER).put("deploymentTag", "")
.put("encTomcatPassword", MY_TOMCAT_PASSWORD)
.put("appContext", "/" + jobDetails.getProjectName().trim().toLowerCase())
.put("tomcat6", "").build());

Here problem is I need to pass encrypted password in MY_TOMCAT_PASSWORD place.

How do I encrypt it? I suppose Bamboo uses Base64 to decode it.

When I use java.util.Base64 to encode password it returns value which is not working on bamboo to deploy app on tomcat and gives error like:

error   27-Feb-2019 09:46:47   Error occurred while running Task 'DeployOnTomcat(3)' of type com.atlassian.bamboo.plugins.tomcat.bamboo-tomcat-plugin:deployAppTask.
error   27-Feb-2019 09:46:47   com.atlassian.bamboo.security.EncryptionException: Failed to decrypt.
error   27-Feb-2019 09:46:47           at com.atlassian.bamboo.security.EncryptionServiceImpl.decrypt(EncryptionServiceImpl.java:72) 
.....
.....
error   27-Feb-2019 09:46:47   Caused by: javax.crypto.IllegalBlockSizeException: Input length must be multiple of 8 when decrypting with padded cipher
error   27-Feb-2019 09:46:47           at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:936)
error   27-Feb-2019 09:46:47           at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:847)
error   27-Feb-2019 09:46:47           at com.sun.crypto.provider.DESedeCipher.engineDoFinal(DESedeCipher.java:294)
error   27-Feb-2019 09:46:47           at javax.crypto.Cipher.doFinal(Cipher.java:2164)
error   27-Feb-2019 09:46:47           at com.atlassian.bamboo.security.EncryptionServiceImpl.decrypt(EncryptionServiceImpl.java:70)

 

1 answer

1 vote
Daniel Santos
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
Mar 01, 2019

Hi @Deepali W

Each Bamboo instance will have a different encrypted result for the same password. It depends on the instance encryption keys.

At the moment we are missing a REST API to generate the encrypted data you need in your specs project. There is a feature request for this at [BAM-20131] Rest API endpoint to encrypt variables content.

As a workaround:

  1. Go to a Bamboo plan, add the Tomcat Deploy task
  2. Fill the minimum task details (and the needed password)
  3. Save the task 
  4. Click in Plan configuration than in Actions >> View plan as java specs
  5. Then copy the encrypted password generated

I hope that can help you while the endpoint is not available.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events