diff --git a/account/src/main/java/de/muehlencord/shared/account/presentation/LoginView.java b/account/src/main/java/de/muehlencord/shared/account/presentation/LoginView.java index d2992de..e53c79f 100644 --- a/account/src/main/java/de/muehlencord/shared/account/presentation/LoginView.java +++ b/account/src/main/java/de/muehlencord/shared/account/presentation/LoginView.java @@ -88,8 +88,27 @@ public class LoginView implements Serializable { currentUser.logout(); ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext(); - String url = ec.getRequestContextPath() + "/login.xhtml"; - ec.redirect(url); + + // check if redirect shall be executed + // default setting is yes to /login.xhtml + // can be overwritten using parameters + // de.muehlencord.shared.account.loginview.executeredirect boolean true/false + // de.muehlencord.shared.account.loginview.redirecttarget path to redirect to (without external context, will be added automatically) + String executeRedirectString = ec.getInitParameter("de.muehlencord.shared.account.loginview.executeredirect"); + boolean executeRedirect = true; + if (executeRedirectString != null) { + executeRedirect = Boolean.parseBoolean(executeRedirectString); + } + + String redirectTarget = ec.getInitParameter("de.muehlencord.shared.account.loginview.redirecttarget"); + if ((redirectTarget == null) || (redirectTarget.equals(""))) { + redirectTarget = "/login.xhtml"; + } + + if (executeRedirect) { + String url = ec.getRequestContextPath() + redirectTarget; + ec.redirect(url); + } } catch (Exception e) { LOGGER.warn(e.toString());