-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathCredentialsUtil.java
54 lines (45 loc) · 2.6 KB
/
CredentialsUtil.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package org.jenkinsci.plugins.servicenow.util;
import com.cloudbees.plugins.credentials.Credentials;
import com.cloudbees.plugins.credentials.CredentialsMatchers;
import com.cloudbees.plugins.credentials.common.StandardUsernamePasswordCredentials;
import com.cloudbees.plugins.credentials.domains.URIRequirementBuilder;
import com.datapipe.jenkins.vault.credentials.VaultAppRoleCredential;
import com.datapipe.jenkins.vault.credentials.VaultCredential;
import hudson.model.Item;
import hudson.security.ACL;
import org.jenkinsci.plugins.servicenow.VaultService;
import org.jenkinsci.plugins.servicenow.model.VaultConfiguration;
import java.util.Map;
public class CredentialsUtil {
public static Credentials findCredentials(String url, String credentialId, VaultConfiguration vaultConfiguration, Item project) {
Credentials credentials = null;
if(vaultConfiguration != null) {
credentials = CredentialsMatchers.firstOrNull(
com.cloudbees.plugins.credentials.CredentialsProvider.lookupCredentials(
VaultAppRoleCredential.class,
project.getParent(), ACL.SYSTEM,
URIRequirementBuilder.fromUri(url).build()),
CredentialsMatchers.withId(credentialId));
}
if(credentials == null) {
credentials = CredentialsMatchers.firstOrNull(
com.cloudbees.plugins.credentials.CredentialsProvider.lookupCredentials(
StandardUsernamePasswordCredentials.class,
project.getParent(), ACL.SYSTEM,
URIRequirementBuilder.fromUri(url).build()),
CredentialsMatchers.withId(credentialId));
}
return credentials;
}
public static org.apache.http.auth.Credentials readCredentials(Credentials credentials, VaultConfiguration vaultConfiguration) {
org.apache.http.auth.Credentials creds = null;
if(credentials instanceof StandardUsernamePasswordCredentials) {
creds = new org.apache.http.auth.UsernamePasswordCredentials(((StandardUsernamePasswordCredentials)credentials).getUsername(), ((StandardUsernamePasswordCredentials)credentials).getPassword().getPlainText());
}
if(credentials instanceof VaultAppRoleCredential) {
Map<String, String> vaultData = VaultService.readVaultData(vaultConfiguration, (VaultCredential) credentials);
creds = new org.apache.http.auth.UsernamePasswordCredentials(vaultData.get("username"), vaultData.get("password"));
}
return creds;
}
}