diff options
author | jonmv <venstad@gmail.com> | 2023-02-07 11:22:49 +0100 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2023-02-07 11:31:11 +0100 |
commit | a69ddfb65a129ade6f35d7a99f88342855aa3a99 (patch) | |
tree | 272ddedc412bf096286748be2e4c5774cdfc6580 /controller-server | |
parent | b5fc02d4da1fd4766e7b665ee0c8dd0914776a0b (diff) |
Avoid internal server error on invalid path
Diffstat (limited to 'controller-server')
-rw-r--r-- | controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/controller/WellKnownApiHandler.java | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/controller/WellKnownApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/controller/WellKnownApiHandler.java index a8af9692bd6..c98a4cc72be 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/controller/WellKnownApiHandler.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/controller/WellKnownApiHandler.java @@ -8,6 +8,7 @@ import com.yahoo.restapi.ErrorResponse; import com.yahoo.restapi.Path; import com.yahoo.restapi.StringResponse; import com.yahoo.vespa.hosted.controller.config.WellKnownFolderConfig; +import com.yahoo.yolean.Exceptions; /** @@ -25,16 +26,21 @@ public class WellKnownApiHandler extends ThreadedHttpRequestHandler { @Override public HttpResponse handle(HttpRequest request) { - switch (request.getMethod()) { - case GET: return get(request); - default: return ErrorResponse.methodNotAllowed("Method '" + request.getMethod() + "' is not supported"); - } + return switch (request.getMethod()) { + case GET -> get(request); + default -> ErrorResponse.methodNotAllowed("Method '" + request.getMethod() + "' is not supported"); + }; } private HttpResponse get(HttpRequest request) { - Path path = new Path(request.getUri()); - if (path.matches("/.well-known/security.txt")) return securityTxt(); - return ErrorResponse.notFoundError("Nothing at " + path); + try { + Path path = new Path(request.getUri()); + if (path.matches("/.well-known/security.txt")) return securityTxt(); + return ErrorResponse.notFoundError("Nothing at " + path); + } + catch (IllegalArgumentException e) { + return ErrorResponse.badRequest(Exceptions.toMessageString(e)); + } } private HttpResponse securityTxt() { |