Index: lams_common/src/java/org/lamsfoundation/lams/integration/security/SsoHandler.java =================================================================== diff -u -ra1d2691d945236c8b50f7ddd67ccccdf435f9f2d -rbb52aeca8f924c447f5b2c69fb05ff4f1aed1412 --- lams_common/src/java/org/lamsfoundation/lams/integration/security/SsoHandler.java (.../SsoHandler.java) (revision a1d2691d945236c8b50f7ddd67ccccdf435f9f2d) +++ lams_common/src/java/org/lamsfoundation/lams/integration/security/SsoHandler.java (.../SsoHandler.java) (revision bb52aeca8f924c447f5b2c69fb05ff4f1aed1412) @@ -161,15 +161,14 @@ // store session so UniversalLoginModule can access it SessionManager.startSession(request); - + String oldSessionID = session.getId(); // do the logging in UniversalLoginModule or cache handler.handleRequest(exchange); // session ID was changed after log in SessionManager.updateSessionID(oldSessionID); - if (login.equals(request.getRemoteUser())) { session.setAttribute(AttributeNames.USER, userDTO); @@ -186,8 +185,6 @@ // remove an existing session for the given user SessionManager.removeSessionByLogin(login, request.isRequestedSessionIdValid()); } - // register current session as the only one for the given user - SessionManager.addSession(login, session); Integer failedAttempts = user.getFailedAttempts(); if (failedAttempts != null && failedAttempts > 0 && password != null && !password.startsWith("#LAMS")) { Index: lams_common/src/java/org/lamsfoundation/lams/web/session/SessionManager.java =================================================================== diff -u -r2d5f02461899b6640fb13db8098d14ee4653e8b8 -rbb52aeca8f924c447f5b2c69fb05ff4f1aed1412 --- lams_common/src/java/org/lamsfoundation/lams/web/session/SessionManager.java (.../SessionManager.java) (revision 2d5f02461899b6640fb13db8098d14ee4653e8b8) +++ lams_common/src/java/org/lamsfoundation/lams/web/session/SessionManager.java (.../SessionManager.java) (revision bb52aeca8f924c447f5b2c69fb05ff4f1aed1412) @@ -70,6 +70,9 @@ String sessionId = session.getId(); SessionManager.sessionIdMapping.put(sessionId, session); SessionManager.sessionManager.currentSessionIdContainer.set(sessionId); + if (request.getRemoteUser() != null) { + SessionManager.loginMapping.put(request.getRemoteUser(), session); + } } /** @@ -81,13 +84,6 @@ } /** - * Registeres the session for the given user. - */ - public static void addSession(String login, HttpSession session) { - SessionManager.loginMapping.put(login, session); - } - - /** * Unregisteres the session for the given user. */ public static void removeSessionByLogin(String login, boolean invalidate) {