aboutsummaryrefslogtreecommitdiffstats
path: root/security-utils/src/main/java/com/yahoo
diff options
context:
space:
mode:
Diffstat (limited to 'security-utils/src/main/java/com/yahoo')
-rw-r--r--security-utils/src/main/java/com/yahoo/security/tls/json/TransportSecurityOptionsEntity.java5
-rw-r--r--security-utils/src/main/java/com/yahoo/security/tls/json/TransportSecurityOptionsJsonSerializer.java9
2 files changed, 11 insertions, 3 deletions
diff --git a/security-utils/src/main/java/com/yahoo/security/tls/json/TransportSecurityOptionsEntity.java b/security-utils/src/main/java/com/yahoo/security/tls/json/TransportSecurityOptionsEntity.java
index 80ef06d9cac..be2027f1c7d 100644
--- a/security-utils/src/main/java/com/yahoo/security/tls/json/TransportSecurityOptionsEntity.java
+++ b/security-utils/src/main/java/com/yahoo/security/tls/json/TransportSecurityOptionsEntity.java
@@ -2,11 +2,14 @@
package com.yahoo.security.tls.json;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.ArrayList;
import java.util.List;
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY;
+
/**
* Jackson bindings for transport security options
*
@@ -16,7 +19,7 @@ import java.util.List;
class TransportSecurityOptionsEntity {
@JsonProperty("files") Files files;
- @JsonProperty("authorized-peers") List<AuthorizedPeer> authorizedPeers = new ArrayList<>();
+ @JsonProperty("authorized-peers") @JsonInclude(NON_EMPTY) List<AuthorizedPeer> authorizedPeers;
static class Files {
@JsonProperty("private-key") String privateKeyFile;
diff --git a/security-utils/src/main/java/com/yahoo/security/tls/json/TransportSecurityOptionsJsonSerializer.java b/security-utils/src/main/java/com/yahoo/security/tls/json/TransportSecurityOptionsJsonSerializer.java
index 2e2148628e8..8b7c860fd85 100644
--- a/security-utils/src/main/java/com/yahoo/security/tls/json/TransportSecurityOptionsJsonSerializer.java
+++ b/security-utils/src/main/java/com/yahoo/security/tls/json/TransportSecurityOptionsJsonSerializer.java
@@ -18,6 +18,7 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.io.UncheckedIOException;
import java.nio.file.Paths;
+import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@@ -42,7 +43,7 @@ public class TransportSecurityOptionsJsonSerializer {
public void serialize(OutputStream out, TransportSecurityOptions options) {
try {
- mapper.writeValue(out, toTransportSecurityOptionsEntity(options));
+ mapper.writerWithDefaultPrettyPrinter().writeValue(out, toTransportSecurityOptionsEntity(options));
} catch (IOException e) {
throw new UncheckedIOException(e);
}
@@ -62,7 +63,10 @@ public class TransportSecurityOptionsJsonSerializer {
}
}
List<AuthorizedPeer> authorizedPeersEntity = entity.authorizedPeers;
- if (authorizedPeersEntity.size() > 0) {
+ if (authorizedPeersEntity != null) {
+ if (authorizedPeersEntity.size() == 0) {
+ throw new IllegalArgumentException("'authorized-peers' cannot be empty");
+ }
builder.withAuthorizedPeers(new AuthorizedPeers(toPeerPolicies(authorizedPeersEntity)));
}
return builder.build();
@@ -124,6 +128,7 @@ public class TransportSecurityOptionsJsonSerializer {
options.getCertificatesFile().ifPresent(value -> entity.files.certificatesFile = value.toString());
options.getPrivateKeyFile().ifPresent(value -> entity.files.privateKeyFile = value.toString());
options.getAuthorizedPeers().ifPresent( authorizedPeers -> {
+ entity.authorizedPeers = new ArrayList<>();
for (PeerPolicy peerPolicy : authorizedPeers.peerPolicies()) {
AuthorizedPeer authorizedPeer = new AuthorizedPeer();
authorizedPeer.name = peerPolicy.policyName();