[英]How to store secret text or file using groovy
我發現了如何使用基於groovy的Jenkins API存儲用戶名/密碼或SSH用戶名/ PrivateKey。
https://gist.github.com/iocanel/9de5c976cc0bd5011653
domain = Domain.global()
store = Jenkins.instance.getExtensionList('com.cloudbees.plugins.credentials.SystemCredentialsProvider')[0].getStore()
priveteKey = new BasicSSHUserPrivateKey(
CredentialsScope.GLOBAL,
"jenkins-slave-key",
"root",
new BasicSSHUserPrivateKey.UsersPrivateKeySource(),
"",
""
)
usernameAndPassword = new UsernamePasswordCredentialsImpl(
CredentialsScope.GLOBAL,
"jenkins-slave-password", "Jenkis Slave with Password Configuration",
"root",
"jenkins"
)
store.addCredentials(domain, priveteKey)
store.addCredentials(domain, usernameAndPassword)
可以存儲更多種類的憑證。 我該怎么辦:
經過研究后,我發現純憑證插件實現了Secret Text和Secret File憑證。 我在上面列出了要點,並添加了這兩種類型的代碼(請參閱要點,以了解所需的導入內容)。
https://gist.github.com/chrisvire/383a2c7b7cfb3f55df6a
secretText = new StringCredentialsImpl(
CredentialsScope.GLOBAL,
"secret-text",
"Secret Text Description",
Secret.fromString("some secret text goes here"))
file = new File("/path/to/some/file")
noFileItem = [ getName: { return "" } ] as FileItem
FileCredentailsImpl can take a file from a do
secretFile = new FileCredentialsImpl(
CredentialsScope.GLOBAL,
"secret-file",
"Secret File Description"
noFileItem, // Don't use FileItem
file.getName(),
file.text)
store.addCredentials(domain, secretText)
store.addCredentials(domain, secretFile)
使用另一個FileCredentialsImpl構造函數的實現:
import com.cloudbees.plugins.credentials.*;
import com.cloudbees.plugins.credentials.domains.Domain;
import org.jenkinsci.plugins.plaincredentials.impl.FileCredentialsImpl;
def secret = '''Hi
there,
only
test'''
def secretBytes = SecretBytes.fromBytes(secret.getBytes())
def credentials = new FileCredentialsImpl(CredentialsScope.GLOBAL, 'my test file', 'description', 'file.txt', secretBytes)
SystemCredentialsProvider.instance.store.addCredentials(Domain.global(), credentials)
import com.cloudbees.plugins.credentials.*;
import com.cloudbees.plugins.credentials.domains.Domain;
import org.jenkinsci.plugins.plaincredentials.impl.FileCredentialsImpl;
import java.nio.file.*;
Path fileLocation = Paths.get("/path/to/some/file.txt");
def secretBytes = SecretBytes.fromBytes(Files.readAllBytes(fileLocation))
def credentials = new FileCredentialsImpl(CredentialsScope.GLOBAL, 'my test file', 'description', 'file.txt', secretBytes)
SystemCredentialsProvider.instance.store.addCredentials(Domain.global(), credentials)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.