diff --git a/omod/src/main/java/org/openmrs/module/referenceapplication/filter/RequireLoginLocationFilter.java b/omod/src/main/java/org/openmrs/module/referenceapplication/filter/RequireLoginLocationFilter.java index 8d21e93d..6c7481fd 100644 --- a/omod/src/main/java/org/openmrs/module/referenceapplication/filter/RequireLoginLocationFilter.java +++ b/omod/src/main/java/org/openmrs/module/referenceapplication/filter/RequireLoginLocationFilter.java @@ -76,20 +76,17 @@ public void doFilter(ServletRequest request, ServletResponse response, FilterCha } HttpServletRequest httpRequest = (HttpServletRequest) request; - if (!skipFilter(httpRequest.getRequestURI())) { - if (Context.isAuthenticated() && Context.getUserContext().getLocationId() == null) { - if (logger.isDebugEnabled()) { - logger.debug("Redirecting user to location selection page"); - } - - //The user needs to select a login location - HttpServletResponse resp = ((HttpServletResponse) response); - resp.setStatus(HttpStatus.OK.value()); - resp.sendRedirect(loginRequestUri); - return; + if (!skipFilter(httpRequest.getRequestURI()) && Context.isAuthenticated() && Context.getUserContext().getLocationId() == null) { + if (logger.isDebugEnabled()) { + logger.debug("Redirecting user to location selection page"); } - } - + + //The user needs to select a login location + HttpServletResponse resp = ((HttpServletResponse) response); + resp.setStatus(HttpStatus.OK.value()); + resp.sendRedirect(loginRequestUri); + return; + } chain.doFilter(request, response); } diff --git a/omod/src/main/java/org/openmrs/module/referenceapplication/page/controller/LoginPageController.java b/omod/src/main/java/org/openmrs/module/referenceapplication/page/controller/LoginPageController.java index 1328cfe4..16b1dd86 100644 --- a/omod/src/main/java/org/openmrs/module/referenceapplication/page/controller/LoginPageController.java +++ b/omod/src/main/java/org/openmrs/module/referenceapplication/page/controller/LoginPageController.java @@ -315,9 +315,7 @@ public String post(@RequestParam(value = "username", required = false) String us new CookieLocaleResolver().setDefaultLocale(userLocale); } - if (StringUtils.isNotBlank(redirectUrl)) { - //don't redirect back to the login page on success nor an external url - if (isUrlWithinOpenmrs(pageRequest, redirectUrl)) { + if (StringUtils.isNotBlank(redirectUrl) && isUrlWithinOpenmrs(pageRequest, redirectUrl)) { if (!redirectUrl.contains("login.") && isSameUser(pageRequest, username)) { if (log.isDebugEnabled()) log.debug("Redirecting user to " + redirectUrl); @@ -325,8 +323,7 @@ public String post(@RequestParam(value = "username", required = false) String us } else { if (log.isDebugEnabled()) log.debug("Redirect contains 'login.', redirecting to home page"); - } - } + } } return "redirect:" + ui.pageLink(ReferenceApplicationConstants.MODULE_ID, "home");