From dd23dfca8ede62a0fc7b8573ac49e79c904782e1 Mon Sep 17 00:00:00 2001 From: Niclas Thobaben Date: Fri, 25 Feb 2022 15:55:38 +0100 Subject: [PATCH] Enable usage of relative urls by prepending referer on relative paths --- .../mailrelay/adapter/web/MessageFormController.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/nclazz/service/mailrelay/adapter/web/MessageFormController.java b/src/main/java/de/nclazz/service/mailrelay/adapter/web/MessageFormController.java index 5c0eee1..b7db2e1 100644 --- a/src/main/java/de/nclazz/service/mailrelay/adapter/web/MessageFormController.java +++ b/src/main/java/de/nclazz/service/mailrelay/adapter/web/MessageFormController.java @@ -47,7 +47,7 @@ public class MessageFormController { redirect = form.getOnSuccess(); } - return "redirect:" + redirect; + return "redirect:" + addRefererToRelativeUrl(referer, redirect); } private String formatErrorRedirect(String referer, MessageForm form, BindingResult bindingResult) { @@ -58,7 +58,14 @@ public class MessageFormController { .collect(Collectors.joining("&")); String origin = form.getOnError() != null ? form.getOnError() : referer; - return origin + "?" + queryParams; + return addRefererToRelativeUrl(referer, origin) + "?" + queryParams; + } + + private String addRefererToRelativeUrl(String referer, String url) { + if(!url.startsWith("/")) { + return url; + } + return referer + url; } private static String mapValidationErrorToQueryParam(ValidationError error) {