diff options
Diffstat (limited to 'config-model')
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java index 9fda25bcb00..adf805a9d10 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java @@ -530,14 +530,17 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> { .flatMap(Arrays::stream) .toList(); - List<X509Certificate> x509Certificates = XML.getChildren(clientElement, "certificate").stream() - .map(certElem -> Path.fromString(certElem.getAttribute("file"))) - .map(path -> app.getFile(path)) - .filter(ApplicationFile::exists) - .map(this::getCertificates) - .flatMap(Collection::stream) + var certificates = XML.getChildren(clientElement, "certificate").stream() + .flatMap(certElem -> { + var file = app.getFile(Path.fromString(certElem.getAttribute("file"))); + if (!file.exists()) { + throw new IllegalArgumentException("Certificate file '%s' for client '%s' does not exist" + .formatted(file.getPath().getRelative(), id)); + } + return getCertificates(file).stream(); + }) .toList(); - return new Client(id, permissions, x509Certificates); + return new Client(id, permissions, certificates); } private List<X509Certificate> getCertificates(ApplicationFile file) { |