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 }