Java 操作 Jenkins 操作凭证(Credential)信息方式
Jenkins的凭证(Credential)是一种安全机制,用于存储登录Jenkins服务器和与其他系统进行交互时所需的敏感信息,例如密码、API tokens等等。
使用Java操作Jenkins凭证可以让我们在Jenkins系统中实现更加安全的信息存储和交互,方便我们对Jenkins进行更加复杂的操作。下面是Java操作Jenkins凭证的详细攻略。
凭证的获取
首先需要获取Jenkins的凭证信息。我们可以通过Jenkins的API获取凭证信息。
获取全部凭证
可以使用Jenkins Credentials Plugin提供的API获取Jenkins中所有的凭证信息。
GET /credentials/store/system/domain/_/api/json?depth=3
其中,/credentials/store/system/domain/_/
表示获取Jenkins中所有凭证的URL,api/json?depth=3
表示API返回的凭证信息的详细程度。
获取特定凭证
使用凭证ID可以获取特定的凭证信息。
GET /credentials/store/system/domain/_/credential/{credentialId}/api/json?depth=1
其中,/credentials/store/system/domain/_/credential/{credentialId}
表示获取ID为{credentialId}
的凭证信息。
更新凭证
使用凭证更新API,可以更新一个已经存在的凭证。
POST /credentials/store/system/domain/{domain}/credential/{credentialId}/updateByXml
其中,/credentials/store/system/domain/{domain}/credential/{credentialId}
表示根据特定的域名和凭证ID更新凭证信息。
删除凭证
使用凭证删除API可以删除一个已经存在的凭证。
DELETE /credentials/store/system/domain/{domain}/credential/{credentialId}/
其中,/credentials/store/system/domain/{domain}/credential/{credentialId}
表示根据特定的域名和凭证ID删除凭证信息。
示例
示例1:使用 Java 添加凭证
下面是添加凭证的Java代码示例:
import com.cloudbees.plugins.credentials.domains.Domain;
import com.cloudbees.plugins.credentials.CredentialsScope;
import org.jenkinsci.plugins.plaincredentials.impl.StringCredentialsImpl;
import com.cloudbees.plugins.credentials.CredentialsStore;
import com.cloudbees.plugins.credentials.SystemCredentialsProvider;
import hudson.util.Secret;
CredentialsStore store = new SystemCredentialsProvider.ProviderImpl().getStore();
Domain domain = Domain.global();
StringCredentialsImpl credential = new StringCredentialsImpl(CredentialsScope.SYSTEM, "myCredentialsId", "myDescription", Secret.fromString("mySecret"));
store.addCredentials(domain, credential);
其中,StringCredentialsImpl
表示创建一个字符串类型的凭证信息,Secret.fromString("mySecret")
表示将字符串类型的凭证信息加密存储,store.addCredentials(domain, credential)
表示将凭证信息添加到全局凭证库中。
示例2:使用 Java 删除凭证
下面是删除凭证的Java代码示例:
import com.cloudbees.plugins.credentials.domains.Domain;
import com.cloudbees.plugins.credentials.CredentialsStore;
import com.cloudbees.plugins.credentials.SystemCredentialsProvider;
import hudson.util.Secret;
CredentialsStore store = new SystemCredentialsProvider.ProviderImpl().getStore();
Domain domain = Domain.global();
store.removeCredentials(domain, "myCredentialsId");
其中,store.removeCredentials(domain, "myCredentialsId")
表示删除名字为myCredentialsId
的凭证信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java操作Jenkins操作凭证(Credential)信息方式 - Python技术站