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)
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:
I hope that can help you while the endpoint is not available.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.