Index: lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java,v diff -u -r1.21.2.6 -r1.21.2.7 --- lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java 8 Dec 2014 14:45:56 -0000 1.21.2.6 +++ lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java 19 May 2015 03:10:24 -0000 1.21.2.7 @@ -149,11 +149,7 @@ } // check if there is a redirect URL parameter already - String redirectURL = request.getParameter("redirectURL"); - if (redirectURL == null) { - // if not, get the full URL based on other parameters - redirectURL = WebUtil.getBaseServerURL() + LoginRequestDispatcher.getRequestURL(request); - } + String redirectURL = WebUtil.getBaseServerURL() + LoginRequestDispatcher.getRequestURL(request); redirectURL = URLEncoder.encode(redirectURL, "UTF-8"); // login.jsp knows what to do with these Index: lams_common/src/java/org/lamsfoundation/lams/integration/security/SsoHandler.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/integration/security/Attic/SsoHandler.java,v diff -u -r1.1.2.7 -r1.1.2.8 --- lams_common/src/java/org/lamsfoundation/lams/integration/security/SsoHandler.java 15 May 2015 04:35:36 -0000 1.1.2.7 +++ lams_common/src/java/org/lamsfoundation/lams/integration/security/SsoHandler.java 19 May 2015 03:10:23 -0000 1.1.2.8 @@ -77,6 +77,12 @@ // recreate session here in case it was invalidated in login.jsp by sysadmin's LoginAs HttpSession session = request.getSession(); + // LoginRequestServlet (integrations) and LoginAsAction (sysadmin) set this parameter + String redirectURL = request.getParameter("redirectURL"); + if (!StringUtils.isBlank(redirectURL)) { + SsoHandler.handleRedirectBack(context, redirectURL); + } + /* Fetch UserDTO before completing request so putting it later in session is done ASAP * Response is sent in another thread and if UserDTO is not present in session when browser completes redirect, * it results in error. Winning this race is the easiest option.