diff options
Diffstat (limited to 'security-utils/src/main/java/com/yahoo/security/tls/TransportSecurityOptions.java')
-rw-r--r-- | security-utils/src/main/java/com/yahoo/security/tls/TransportSecurityOptions.java | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/security-utils/src/main/java/com/yahoo/security/tls/TransportSecurityOptions.java b/security-utils/src/main/java/com/yahoo/security/tls/TransportSecurityOptions.java index f0d1edd6889..67466179634 100644 --- a/security-utils/src/main/java/com/yahoo/security/tls/TransportSecurityOptions.java +++ b/security-utils/src/main/java/com/yahoo/security/tls/TransportSecurityOptions.java @@ -48,17 +48,28 @@ public class TransportSecurityOptions { public static TransportSecurityOptions fromJsonFile(Path file) { try { - JsonNode root = mapper.readTree(file.toFile()); - JsonNode filesNode = getField(root, "files"); - String privateKeyFile = getField(filesNode, "private-key").asText(); - String certificatesFile = getField(filesNode, "certificates").asText(); - String caCertificatesFile = getField(filesNode, "ca-certificates").asText(); - return new TransportSecurityOptions(privateKeyFile, certificatesFile, caCertificatesFile); + return fromJsonNode(mapper.readTree(file.toFile())); } catch (IOException e) { throw new UncheckedIOException(e); } } + public static TransportSecurityOptions fromJson(String json) { + try { + return fromJsonNode(mapper.readTree(json)); + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } + + private static TransportSecurityOptions fromJsonNode(JsonNode root) { + JsonNode filesNode = getField(root, "files"); + String privateKeyFile = getField(filesNode, "private-key").asText(); + String certificatesFile = getField(filesNode, "certificates").asText(); + String caCertificatesFile = getField(filesNode, "ca-certificates").asText(); + return new TransportSecurityOptions(privateKeyFile, certificatesFile, caCertificatesFile); + } + private static JsonNode getField(JsonNode root, String fieldName) { return Optional.ofNullable(root.get(fieldName)) .orElseThrow(() -> new IllegalArgumentException(String.format("'%s' field missing", fieldName))); |