|
From: Michael K. <ko...@us...> - 2005-02-21 16:02:24
|
Update of /cvsroot/cobricks/cobricks2/src/org/cobricks/portal In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15569 Modified Files: PortalServlet.java Log Message: Added support for Liberty Alliance Single Sign-On. Index: PortalServlet.java =================================================================== RCS file: /cvsroot/cobricks/cobricks2/src/org/cobricks/portal/PortalServlet.java,v retrieving revision 1.33 retrieving revision 1.34 diff -u -d -r1.33 -r1.34 --- PortalServlet.java 8 Dec 2004 15:19:44 -0000 1.33 +++ PortalServlet.java 21 Feb 2005 16:01:57 -0000 1.34 @@ -28,7 +28,9 @@ import org.cobricks.core.util.LogUtil; import org.cobricks.user.User; import org.cobricks.user.UserHandler; - +import org.cobricks.user.liberty.idff.LAIdffArgs; +import org.cobricks.user.liberty.idff.LAIdffBridge; +import org.cobricks.user.liberty.idff.IdentityProvider; /** * This class implements functionality for the Cobricks-2 portal, i.e. @@ -213,9 +215,33 @@ HttpServletResponse response = portalRequest.getHttpServletResponse(); logger.info("perfomLogout()"); - - // everything went well ... + HttpSession session = request.getSession(true); + + // begin - Liberty Alliance Single Sign On + + //alle SPSessions für den User löschen, sonst Probleme wenn er gleich wieder ein Login + //über den selben SP macht + LAIdffBridge bridge = LAIdffBridge.getSingleInstance(); + IdentityProvider idp = (IdentityProvider)bridge.getCurrentIDP(portalRequest); + //wenn idp null, keine aktive Session durch IDP mehr => es muss auch keine beendet werden + if(idp != null){ + String userID = (String)session.getAttribute("login.userlogin"); + String providerID = idp.getName(); + + LAIdffArgs args = new LAIdffArgs(); + args.setUserID(userID); + args.setProviderID(providerID); + args.setRequest(request); + args.setResponse(response); + + logger.debug("calling bridge.removeProviderSessions() with args:" + args); + bridge.removeProviderSessions(args); + } + + // end - Liberty Alliance Single Sign On + + // everything went well ... sessionHandler.setSession(session); session.setAttribute("login.userlogin", "anonymous"); String target= portalRequest.getRequestParameter("cmd.success"); |