View Javadoc

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      // These are the environment variables that Micros uses when a service descriptor includes "requiresAsap: true".
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