View Javadoc

1   package com.atlassian.asap.service.core.service;
2   
3   import com.atlassian.asap.service.core.spi.AsapConfiguration;
4   import com.google.common.base.MoreObjects;
5   
6   import static java.util.Objects.requireNonNull;
7   
8   public class StringValuesAsapConfiguration implements AsapConfiguration {
9       private final String issuer;
10      private final String keyId;
11      private final String audience;
12      private final String publicKeyRepositoryUrl;
13      private final String privateKeyUri;
14  
15      public StringValuesAsapConfiguration(String issuer, String keyId, String audience,
16                                           String publicKeyRepositoryUrl, String privateKeyUri) {
17          this.issuer = requireNonNull(issuer, "issuer");
18          this.keyId = requireNonNull(keyId, "keyId");
19          this.audience = requireNonNull(audience, "audience");
20          this.publicKeyRepositoryUrl = requireNonNull(publicKeyRepositoryUrl, "publicKeyRepositoryUrl");
21          this.privateKeyUri = requireNonNull(privateKeyUri, "privateKeyUri");
22  
23          if (!keyId.startsWith(issuer)) {
24              throw new IllegalStateException("The keyId '" + keyId + "' must include the issuer '" + issuer +
25                      "' as a prefix");
26          }
27      }
28  
29      @Override
30      public String issuer() {
31          return issuer;
32      }
33  
34      @Override
35      public String keyId() {
36          return keyId;
37      }
38  
39      @Override
40      public String audience() {
41          return audience;
42      }
43  
44      @Override
45      public String publicKeyRepositoryUrl() {
46          return publicKeyRepositoryUrl;
47      }
48  
49      @Override
50      public String privateKeyUrl() {
51          return privateKeyUri;
52      }
53  
54      @Override
55      public String toString() {
56          return MoreObjects.toStringHelper(this)
57                  .add("issuer", issuer)
58                  .add("keyId", keyId)
59                  .add("audience", audience)
60                  .add("publicKeyRepositoryUrl", publicKeyRepositoryUrl)
61                  .add("privateKeyUri", privateKeyUri.isEmpty() ? "blank" : "defined")
62                  .toString();
63      }
64  }