aboutsummaryrefslogtreecommitdiffstats
path: root/container-disc/src/main/java/com/yahoo/container/jdisc/athenz/impl/InstanceIdentity.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-disc/src/main/java/com/yahoo/container/jdisc/athenz/impl/InstanceIdentity.java')
-rw-r--r--container-disc/src/main/java/com/yahoo/container/jdisc/athenz/impl/InstanceIdentity.java46
1 files changed, 19 insertions, 27 deletions
diff --git a/container-disc/src/main/java/com/yahoo/container/jdisc/athenz/impl/InstanceIdentity.java b/container-disc/src/main/java/com/yahoo/container/jdisc/athenz/impl/InstanceIdentity.java
index ccb9b12c61a..20bbb2aa67e 100644
--- a/container-disc/src/main/java/com/yahoo/container/jdisc/athenz/impl/InstanceIdentity.java
+++ b/container-disc/src/main/java/com/yahoo/container/jdisc/athenz/impl/InstanceIdentity.java
@@ -4,8 +4,13 @@ package com.yahoo.container.jdisc.athenz.impl;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import java.util.Map;
+import java.io.IOException;
+import java.security.cert.X509Certificate;
/**
* Used for deserializing response from ZTS
@@ -15,42 +20,29 @@ import java.util.Map;
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class InstanceIdentity {
- @JsonProperty("attributes") private final Map<String, String> attributes;
- @JsonProperty("provider") private final String provider;
- @JsonProperty("name") private final String name;
- @JsonProperty("instanceId") private final String instanceId;
- @JsonProperty("x509Certificate") private final String x509Certificate;
- @JsonProperty("x509CertificateSigner") private final String x509CertificateSigner;
- @JsonProperty("sshCertificate") private final String sshCertificate;
- @JsonProperty("sshCertificateSigner") private final String sshCertificateSigner;
+ @JsonProperty("x509Certificate") private final X509Certificate x509Certificate;
@JsonProperty("serviceToken") private final String serviceToken;
- public InstanceIdentity(
- @JsonProperty("attributes") Map<String, String> attributes,
- @JsonProperty("provider") String provider,
- @JsonProperty("name") String name,
- @JsonProperty("instanceId") String instanceId,
- @JsonProperty("x509Certificate") String x509Certificate,
- @JsonProperty("x509CertificateSigner") String x509CertificateSigner,
- @JsonProperty("sshCertificate") String sshCertificate,
- @JsonProperty("sshCertificateSigner") String sshCertificateSigner,
- @JsonProperty("serviceToken") String serviceToken) {
- this.attributes = attributes;
- this.provider = provider;
- this.name = name;
- this.instanceId = instanceId;
+ public InstanceIdentity(@JsonProperty("x509Certificate") @JsonDeserialize(using = X509CertificateDeserializer.class)
+ X509Certificate x509Certificate,
+ @JsonProperty("serviceToken") String serviceToken) {
this.x509Certificate = x509Certificate;
- this.x509CertificateSigner = x509CertificateSigner;
- this.sshCertificate = sshCertificate;
- this.sshCertificateSigner = sshCertificateSigner;
this.serviceToken = serviceToken;
}
- public String getX509Certificate() {
+ public X509Certificate getX509Certificate() {
return x509Certificate;
}
public String getServiceToken() {
return serviceToken;
}
+
+ public static class X509CertificateDeserializer extends JsonDeserializer<X509Certificate> {
+ @Override
+ public X509Certificate deserialize(JsonParser parser, DeserializationContext context) throws IOException {
+ return CryptoUtils.parseCertificate(parser.getValueAsString());
+ }
+ }
+
}