Skip to content

Instantly share code, notes, and snippets.

@Lawliet-L
Last active November 21, 2023 15:42
Show Gist options
  • Save Lawliet-L/ee5a6537d722d4e1447bbb90ea92ceae to your computer and use it in GitHub Desktop.
Save Lawliet-L/ee5a6537d722d4e1447bbb90ea92ceae to your computer and use it in GitHub Desktop.
Dump jenkins credentials using Script Console
import com.cloudbees.plugins.credentials.*
import com.cloudbees.plugins.credentials.common.*
import com.cloudbees.plugins.credentials.domains.*
import com.cloudbees.plugins.credentials.impl.*
import com.cloudbees.jenkins.plugins.sshcredentials.impl.*
import org.jenkinsci.plugins.plaincredentials.impl.*
import java.nio.charset.StandardCharsets
// def item = Jenkins.instance.getItem("your-folder")
def creds = CredentialsProvider.lookupCredentials(
com.cloudbees.plugins.credentials.Credentials.class,
Jenkins.instance, // replace with item to get folder or item scoped credentials
null,
null
);
for (credential in creds) {
println "credential start"
println "credential id: " + credential.getId()
println "description: " + credential.getDescription()
if (credential instanceof UsernamePasswordCredentialsImpl) {
println "UsernamePasswordCredentialsImpl"
println "username: " + credential.getUsername()
println "password: " + credential.getPassword().getPlainText()
} else if (credential instanceof StringCredentialsImpl) {
println "StringCredentialsImpl"
println "secret: " + credential.getSecret().getPlainText()
} else if(credential instanceof BasicSSHUserPrivateKey) {
println "BasicSSHUserPrivateKey"
println "username: " + credential.getUsername()
println "private key: " + credential.getPrivateKey()
println "Passphrase: " + credential.getPassphrase()
} else if (credential.getClass().toString() == "class com.microsoft.azure.util.AzureCredentials") {
println "com.microsoft.azure.util.AzureCredentials"
println "sub id: " + credential.getSubscriptionId()
println "client id: " + credential.getClientId()
println "client secret: " + credential.getPlainClientSecret()
println "tenant: " + credential.getTenant()
} else if (credential.getClass().toString() == "class org.jenkinsci.plugins.github_branch_source.GitHubAppCredentials") {
println "org.jenkinsci.plugins.github_branch_source.GitHubAppCredentials"
println "username: "credential.getUsername()
println "private key" + credential.getPrivateKey().getPlainText()
} else if (credential.getClass().toString() == "class com.cloudbees.jenkins.plugins.awscredentials.AWSCredentialsImpl") {
println "com.cloudbees.jenkins.plugins.awscredentials.AWSCredentialsImpl"
println "access key: " + credential.getAccessKey()
println "secret: " + credential.getSecretKey()
} else if (credential.getClass().toString() == "class com.microsoft.jenkins.keyvault.SecretStringCredentials") {
println "com.microsoft.jenkins.keyvault.SecretStringCredentials"
} else if (credential.getClass().toString() == "class org.jenkinsci.plugins.azurekeyvaultplugin.credentials.string.AzureSecretStringCredentials") {
println "org.jenkinsci.plugins.azurekeyvaultplugin.credentials.string.AzureSecretStringCredentials"
} else if (credential.getClass().toString() == "class com.datapipe.jenkins.vault.credentials.common.VaultStringCredentialImpl") {
println "com.datapipe.jenkins.vault.credentials.common.VaultStringCredentialImpl"
println "vault key: " + credential.getVaultKey()
println "secret: " + credential.getSecret()
println "path: " + credential.getPath()
} else if (credential.getClass().toString() == "class org.jenkinsci.plugins.plaincredentials.impl.FileCredentialsImpl") {
println "class org.jenkinsci.plugins.plaincredentials.impl.FileCredentialsImpl"
println "fileName: " + credential.getFileName()
println "\n file content: \n" + new String(credential.getSecretBytes().getPlainData())
println "\n file bytes: \n" + credential.getSecretBytes().getPlainData()
} else if (credential.getClass().toString() == "class com.datapipe.jenkins.vault.credentials.VaultAppRoleCredential") {
println "class com.datapipe.jenkins.vault.credentials.VaultAppRoleCredential"
println "path: " + credential.getPath()
println "role id: " + credential.getRoleId()
println "secret id: " + credential.getSecretId()
} else if (credential.getClass().toString() == "class com.datapipe.jenkins.vault.credentials.VaultTokenCredential") {
println "class com.datapipe.jenkins.vault.credentials.VaultTokenCredential"
println "secret: " + credential.getToken(null)
} else if (credential.getClass().toString() == "class com.datapipe.jenkins.vault.credentials.common.VaultFileCredentialImpl") {
println "class com.datapipe.jenkins.vault.credentials.common.VaultFileCredentialImpl"
println "valut key: " + credential.getVaultKey()
println "use key: " + credential.getUseKey()
println "file name: " + credential.getFileName()
try {
println "\n content: \n" + new String(credential.getContent().readAllBytes(), StandardCharsets.UTF_8)
} catch (Exception e) {
println "unable to load content due to " + e.toString()
}
} else {
println "UNKNOWN " + credential.getClass()
}
println "credential end\n"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment