-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAuthConfigReader.java
More file actions
64 lines (49 loc) · 1.94 KB
/
AuthConfigReader.java
File metadata and controls
64 lines (49 loc) · 1.94 KB
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
55
56
57
58
59
60
61
62
63
64
package de.gesellix.docker.authentication;
import de.gesellix.docker.engine.DockerConfigReader;
import de.gesellix.docker.engine.DockerEnv;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.util.Map;
import static de.gesellix.docker.authentication.AuthConfig.EMPTY_AUTH_CONFIG;
public class AuthConfigReader {
private final static Logger log = LoggerFactory.getLogger(AuthConfigReader.class);
private final DockerEnv env;
private final DockerConfigReader dockerConfigReader;
public AuthConfigReader() {
this(new DockerEnv());
}
public AuthConfigReader(DockerEnv env) {
this.env = env;
this.dockerConfigReader = env.getDockerConfigReader();
}
// @Override
public AuthConfig readDefaultAuthConfig() {
return readAuthConfig(null, dockerConfigReader.getDockerConfigFile());
}
// @Override
public AuthConfig readAuthConfig(String hostname, File dockerCfg) {
log.debug("read authConfig");
if (hostname == null || hostname.trim().isEmpty()) {
hostname = env.getIndexUrl_v1();
}
Map parsedDockerCfg = dockerConfigReader.readDockerConfigFile(dockerCfg);
if (parsedDockerCfg == null || parsedDockerCfg.isEmpty()) {
return EMPTY_AUTH_CONFIG;
}
CredsStore credsStore = getCredentialsStore(parsedDockerCfg, hostname);
return credsStore.getAuthConfig(hostname);
}
public CredsStore getCredentialsStore(Map parsedDockerCfg) {
return getCredentialsStore(parsedDockerCfg, "");
}
public CredsStore getCredentialsStore(Map parsedDockerCfg, String hostname) {
if (parsedDockerCfg.containsKey("credHelpers") && hostname != null && !hostname.trim().isEmpty()) {
return new NativeStore((String) ((Map) parsedDockerCfg.get("credHelpers")).get(hostname));
}
if (parsedDockerCfg.containsKey("credsStore")) {
return new NativeStore((String) parsedDockerCfg.get("credsStore"));
}
return new FileStore(parsedDockerCfg);
}
}