1 package com.atlassian.asap.service.core.service;
2
3 import com.google.common.annotations.VisibleForTesting;
4
5 import java.util.Optional;
6 import java.util.function.Function;
7
8 @SuppressWarnings("WeakerAccess")
9 public class EnvVarAsapConfiguration extends StringValuesAsapConfiguration {
10
11 static final String ASAP_ISSUER = "ASAP_ISSUER";
12 static final String ASAP_KEY_ID = "ASAP_KEY_ID";
13 static final String ASAP_AUDIENCE = "ASAP_AUDIENCE";
14 static final String ASAP_PUBLIC_KEY_REPOSITORY_URL = "ASAP_PUBLIC_KEY_REPOSITORY_URL";
15 static final String ASAP_PRIVATE_KEY = "ASAP_PRIVATE_KEY";
16
17 public EnvVarAsapConfiguration(String defaultIssuer, String defaultKeyId, String defaultAudience) {
18 this(defaultIssuer, defaultKeyId, defaultAudience, varName -> Optional.ofNullable(System.getenv(varName)));
19 }
20
21 @VisibleForTesting
22 EnvVarAsapConfiguration(String defaultIssuer, String defaultKeyId, String defaultAudience,
23 Function<String, Optional<String>> getenv) {
24 super(getenv.apply(ASAP_ISSUER).orElse(defaultIssuer),
25 getenv.apply(ASAP_KEY_ID).orElse(defaultKeyId),
26 getenv.apply(ASAP_AUDIENCE).orElse(defaultAudience),
27 getenv.apply(ASAP_PUBLIC_KEY_REPOSITORY_URL).orElse(""),
28 getenv.apply(ASAP_PRIVATE_KEY).orElse(""));
29 }
30 }
31