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) {