Index: lams_central/src/java/org/lamsfoundation/lams/web/SIFOpenIDServlet.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/web/Attic/SIFOpenIDServlet.java,v diff -u -r1.5 -r1.6 --- lams_central/src/java/org/lamsfoundation/lams/web/SIFOpenIDServlet.java 25 Feb 2010 03:31:39 -0000 1.5 +++ lams_central/src/java/org/lamsfoundation/lams/web/SIFOpenIDServlet.java 9 Mar 2010 02:21:54 -0000 1.6 @@ -66,6 +66,8 @@ // Check if the user is not already logged in HttpSession session = request.getSession(true); String loggedInAs = OpenIdFilter.getCurrentUser(session); + + Long lessonID = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID, true); if (openIDEnabled != null && Boolean.parseBoolean(openIDEnabled.getConfigValue())) { if (loggedInAs == null) { @@ -76,7 +78,7 @@ redirectToPortal(response, messageService.getMessage(ERROR_KEY_NO_ID_PASSED)); } else { - String returnURL = UrlUtils.getBaseUrl(request) + "/OpenIDServlet"; + String returnURL = UrlUtils.getBaseUrl(request) + "/OpenIDServlet?lessonID=" + lessonID; sendAuthenticationRequest(response, userOpenIDURL, returnURL, UrlUtils.getBaseUrl(request)); } } else { Index: lams_common/src/java/org/lamsfoundation/lams/integration/security/LoginRequestValve.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/integration/security/LoginRequestValve.java,v diff -u -r1.5 -r1.6 --- lams_common/src/java/org/lamsfoundation/lams/integration/security/LoginRequestValve.java 18 Feb 2010 05:41:36 -0000 1.5 +++ lams_common/src/java/org/lamsfoundation/lams/integration/security/LoginRequestValve.java 9 Mar 2010 02:21:55 -0000 1.6 @@ -21,7 +21,6 @@ package org.lamsfoundation.lams.integration.security; import java.io.IOException; -import java.net.URLDecoder; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -36,6 +35,8 @@ import org.apache.catalina.valves.ValveBase; import org.apache.log4j.Logger; import org.lamsfoundation.lams.integration.util.LoginRequestDispatcher; +import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.web.util.AttributeNames; /** * When j_security_check authentication is successful the user is redirected to the original requested URL. The @@ -149,12 +150,23 @@ HttpSession hses = hreq.getSession(false); log.debug("Session Id - " + hses.getId()); + + Long lessonID = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID, true); // check required parameters if (hses != null) { log.info("OPENID REQUEST DETECTED - LOGIN SUCCESSFUL"); - String relURL = request.getContextPath() + "/index.do"; + String relURL; + + if (lessonID != null) { + // Launch learner + relURL = request.getContextPath() + "/launchlearner.do?" + AttributeNames.PARAM_LESSON_ID +"=" + lessonID; + } else { + // Go to LAMS home + relURL = request.getContextPath() + "/index.do"; + } + log.debug("Redirect URL - " + relURL); // create catalina internal session