logout.jsp revision e8721886dbfd32e88cc7077cbee4b6bb1b44b443
78a072e1b56619e3230735ae073668311232ec94vboxsync<%--
78a072e1b56619e3230735ae073668311232ec94vboxsync DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync Copyright (c) 2007 Sun Microsystems Inc. All Rights Reserved
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync The contents of this file are subject to the terms
78a072e1b56619e3230735ae073668311232ec94vboxsync of the Common Development and Distribution License
78a072e1b56619e3230735ae073668311232ec94vboxsync (the License). You may not use this file except in
78a072e1b56619e3230735ae073668311232ec94vboxsync compliance with the License.
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync You can obtain a copy of the License at
78a072e1b56619e3230735ae073668311232ec94vboxsync https://opensso.dev.java.net/public/CDDLv1.0.html or
78a072e1b56619e3230735ae073668311232ec94vboxsync opensso/legal/CDDLv1.0.txt
78a072e1b56619e3230735ae073668311232ec94vboxsync See the License for the specific language governing
78a072e1b56619e3230735ae073668311232ec94vboxsync permission and limitations under the License.
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync When distributing Covered Code, include this CDDL
78a072e1b56619e3230735ae073668311232ec94vboxsync Header Notice in each file and include the License file
78a072e1b56619e3230735ae073668311232ec94vboxsync at opensso/legal/CDDLv1.0.txt.
78a072e1b56619e3230735ae073668311232ec94vboxsync If applicable, add the following below the CDDL Header,
78a072e1b56619e3230735ae073668311232ec94vboxsync with the fields enclosed by brackets [] replaced by
78a072e1b56619e3230735ae073668311232ec94vboxsync your own identifying information:
78a072e1b56619e3230735ae073668311232ec94vboxsync "Portions Copyrighted [year] [name of copyright owner]"
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync $Id: logout.jsp,v 1.9 2009/07/02 22:00:17 exu Exp $
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync--%>
c3d2b15ad840b405062f4c2c6b127d6fc107c7b2vboxsync
c3d2b15ad840b405062f4c2c6b127d6fc107c7b2vboxsync<%@page
c3d2b15ad840b405062f4c2c6b127d6fc107c7b2vboxsync import="com.sun.identity.wsfederation.common.WSFederationConstants"
c3d2b15ad840b405062f4c2c6b127d6fc107c7b2vboxsync import="java.util.Map"
c3d2b15ad840b405062f4c2c6b127d6fc107c7b2vboxsync import="com.sun.identity.plugin.session.SessionManager"
c3d2b15ad840b405062f4c2c6b127d6fc107c7b2vboxsync import="com.sun.identity.shared.encode.URLEncDec"
c3d2b15ad840b405062f4c2c6b127d6fc107c7b2vboxsync import="com.sun.identity.multiprotocol.MultiProtocolUtils"
78a072e1b56619e3230735ae073668311232ec94vboxsync import="com.sun.identity.multiprotocol.SingleLogoutManager"
c3d2b15ad840b405062f4c2c6b127d6fc107c7b2vboxsync%>
78a072e1b56619e3230735ae073668311232ec94vboxsync<%
78a072e1b56619e3230735ae073668311232ec94vboxsync String displayName =
78a072e1b56619e3230735ae073668311232ec94vboxsync (String)request.getAttribute(WSFederationConstants.LOGOUT_DISPLAY_NAME);
78a072e1b56619e3230735ae073668311232ec94vboxsync String wreply =
78a072e1b56619e3230735ae073668311232ec94vboxsync (String)request.getAttribute(WSFederationConstants.LOGOUT_WREPLY);
78a072e1b56619e3230735ae073668311232ec94vboxsync Map<String, String> providerList =
78a072e1b56619e3230735ae073668311232ec94vboxsync (Map<String, String>)request.getAttribute(
78a072e1b56619e3230735ae073668311232ec94vboxsync WSFederationConstants.LOGOUT_PROVIDER_LIST);
78a072e1b56619e3230735ae073668311232ec94vboxsync String uri = request.getRequestURI();
78a072e1b56619e3230735ae073668311232ec94vboxsync String deploymentURI = uri;
78a072e1b56619e3230735ae073668311232ec94vboxsync int firstSlashIndex = uri.indexOf("/");
78a072e1b56619e3230735ae073668311232ec94vboxsync int secondSlashIndex = uri.indexOf("/", firstSlashIndex+1);
78a072e1b56619e3230735ae073668311232ec94vboxsync if (secondSlashIndex != -1) {
78a072e1b56619e3230735ae073668311232ec94vboxsync deploymentURI = uri.substring(0, secondSlashIndex);
78a072e1b56619e3230735ae073668311232ec94vboxsync }
78a072e1b56619e3230735ae073668311232ec94vboxsync%>
78a072e1b56619e3230735ae073668311232ec94vboxsync<html>
78a072e1b56619e3230735ae073668311232ec94vboxsync <head>
78a072e1b56619e3230735ae073668311232ec94vboxsync <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
78a072e1b56619e3230735ae073668311232ec94vboxsync <title>Signing Out</title>
f001a45ec92f71f1e4c1015485fc1ddf84e8059cvboxsync <script language="JavaScript">
f001a45ec92f71f1e4c1015485fc1ddf84e8059cvboxsync <%
f001a45ec92f71f1e4c1015485fc1ddf84e8059cvboxsync // handle multi-federation protocol case
78a072e1b56619e3230735ae073668311232ec94vboxsync Object uSession = null;
78a072e1b56619e3230735ae073668311232ec94vboxsync try {
78a072e1b56619e3230735ae073668311232ec94vboxsync uSession = SessionManager.getProvider().getSession(request);
78a072e1b56619e3230735ae073668311232ec94vboxsync } catch (Exception e) {
78a072e1b56619e3230735ae073668311232ec94vboxsync // ignore
78a072e1b56619e3230735ae073668311232ec94vboxsync }
78a072e1b56619e3230735ae073668311232ec94vboxsync if ((providerList != null) && !providerList.isEmpty()
78a072e1b56619e3230735ae073668311232ec94vboxsync && (uSession != null) &&
78a072e1b56619e3230735ae073668311232ec94vboxsync SessionManager.getProvider().isValid(uSession) &&
78a072e1b56619e3230735ae073668311232ec94vboxsync MultiProtocolUtils.isMultipleProtocolSession(uSession,
78a072e1b56619e3230735ae073668311232ec94vboxsync SingleLogoutManager.WS_FED))
78a072e1b56619e3230735ae073668311232ec94vboxsync {
78a072e1b56619e3230735ae073668311232ec94vboxsync StringBuffer redirectUrl = new StringBuffer();
78a072e1b56619e3230735ae073668311232ec94vboxsync redirectUrl.append(deploymentURI).
78a072e1b56619e3230735ae073668311232ec94vboxsync append("/wsfederation/jsp/multi.jsp");
78a072e1b56619e3230735ae073668311232ec94vboxsync String realm = (String)
78a072e1b56619e3230735ae073668311232ec94vboxsync request.getAttribute(WSFederationConstants.REALM_PARAM);
78a072e1b56619e3230735ae073668311232ec94vboxsync String idpEntityId = (String)
78a072e1b56619e3230735ae073668311232ec94vboxsync request.getAttribute(WSFederationConstants.ENTITYID_PARAM);
78a072e1b56619e3230735ae073668311232ec94vboxsync if ((realm != null) && (realm.length() != 0)) {
78a072e1b56619e3230735ae073668311232ec94vboxsync redirectUrl.append("?").
78a072e1b56619e3230735ae073668311232ec94vboxsync append(WSFederationConstants.REALM_PARAM).
78a072e1b56619e3230735ae073668311232ec94vboxsync append("=").append(realm);
78a072e1b56619e3230735ae073668311232ec94vboxsync }
78a072e1b56619e3230735ae073668311232ec94vboxsync if ((idpEntityId != null) && (idpEntityId.length() != 0)) {
78a072e1b56619e3230735ae073668311232ec94vboxsync if (redirectUrl.toString().indexOf("?") == -1) {
78a072e1b56619e3230735ae073668311232ec94vboxsync redirectUrl.append("?");
78a072e1b56619e3230735ae073668311232ec94vboxsync } else {
78a072e1b56619e3230735ae073668311232ec94vboxsync redirectUrl.append("&");
78a072e1b56619e3230735ae073668311232ec94vboxsync }
78a072e1b56619e3230735ae073668311232ec94vboxsync redirectUrl.append(WSFederationConstants.ENTITYID_PARAM).
78a072e1b56619e3230735ae073668311232ec94vboxsync append("=").append(URLEncDec.encode(idpEntityId));
78a072e1b56619e3230735ae073668311232ec94vboxsync }
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync if ((wreply != null) && (wreply.length() != 0)) {
78a072e1b56619e3230735ae073668311232ec94vboxsync if (redirectUrl.toString().indexOf("?") == -1) {
78a072e1b56619e3230735ae073668311232ec94vboxsync redirectUrl.append("?");
78a072e1b56619e3230735ae073668311232ec94vboxsync } else {
78a072e1b56619e3230735ae073668311232ec94vboxsync redirectUrl.append("&");
f001a45ec92f71f1e4c1015485fc1ddf84e8059cvboxsync }
f001a45ec92f71f1e4c1015485fc1ddf84e8059cvboxsync redirectUrl.append(WSFederationConstants.LOGOUT_WREPLY).
f001a45ec92f71f1e4c1015485fc1ddf84e8059cvboxsync append("=").append(URLEncDec.encode(wreply));
78a072e1b56619e3230735ae073668311232ec94vboxsync }
78a072e1b56619e3230735ae073668311232ec94vboxsync wreply = redirectUrl.toString();
f001a45ec92f71f1e4c1015485fc1ddf84e8059cvboxsync }
f001a45ec92f71f1e4c1015485fc1ddf84e8059cvboxsync if ((wreply != null) && (wreply.length() != 0)) {
78a072e1b56619e3230735ae073668311232ec94vboxsync %>
78a072e1b56619e3230735ae073668311232ec94vboxsync function startTimer() {
78a072e1b56619e3230735ae073668311232ec94vboxsync if (window.self == window.top) {
f001a45ec92f71f1e4c1015485fc1ddf84e8059cvboxsync setTimeout(redirectToWReply,6000);
78a072e1b56619e3230735ae073668311232ec94vboxsync } else {
78a072e1b56619e3230735ae073668311232ec94vboxsync setTimeout(redirectToWReply, 3000);
78a072e1b56619e3230735ae073668311232ec94vboxsync }
78a072e1b56619e3230735ae073668311232ec94vboxsync }
c3d2b15ad840b405062f4c2c6b127d6fc107c7b2vboxsync function redirectToWReply () {
c3d2b15ad840b405062f4c2c6b127d6fc107c7b2vboxsync document.location.href="<%=wreply%>";
c3d2b15ad840b405062f4c2c6b127d6fc107c7b2vboxsync }
78a072e1b56619e3230735ae073668311232ec94vboxsync <%
78a072e1b56619e3230735ae073668311232ec94vboxsync } else {
78a072e1b56619e3230735ae073668311232ec94vboxsync %>
78a072e1b56619e3230735ae073668311232ec94vboxsync function startTimer() {
78a072e1b56619e3230735ae073668311232ec94vboxsync }
78a072e1b56619e3230735ae073668311232ec94vboxsync <%
78a072e1b56619e3230735ae073668311232ec94vboxsync }
78a072e1b56619e3230735ae073668311232ec94vboxsync %>
78a072e1b56619e3230735ae073668311232ec94vboxsync </script>
78a072e1b56619e3230735ae073668311232ec94vboxsync <link rel="stylesheet" type="text/css" href="<%= deploymentURI %>/com_sun_web_ui/css/css_ns6up.css" />
78a072e1b56619e3230735ae073668311232ec94vboxsync <link rel="shortcut icon" href="<%= deploymentURI %>/com_sun_web_ui/images/favicon/favicon.ico" type="image/x-icon" />
78a072e1b56619e3230735ae073668311232ec94vboxsync </head>
78a072e1b56619e3230735ae073668311232ec94vboxsync <body class="DefBdy" onload="startTimer();">
78a072e1b56619e3230735ae073668311232ec94vboxsync <div class="SkpMedGry1"><a href="#SkipAnchor3860"><img src="<%= deploymentURI %>/com_sun_web_ui/images/other/dot.gif" alt="Jump to End of Masthead" border="0" height="1" width="1"></a></div><div class="MstDiv">
78a072e1b56619e3230735ae073668311232ec94vboxsync <table class="MstTblBot" title="" border="0" cellpadding="0" cellspacing="0" width="100%">
78a072e1b56619e3230735ae073668311232ec94vboxsync <tr>
78a072e1b56619e3230735ae073668311232ec94vboxsync <td class="MstTdTtl" width="99%">
78a072e1b56619e3230735ae073668311232ec94vboxsync <div class="MstDivTtl"><img name="AMConfig.configurator.ProdName" src="<%= deploymentURI %>/console/images/PrimaryProductName.png" alt="OpenAM" border="0"></div>
34aa2e97a2a6d7c3c0a5be5121edfd51a31281acvboxsync </td>
34aa2e97a2a6d7c3c0a5be5121edfd51a31281acvboxsync <td class="MstTdLogo" width="1%"><img name="AMConfig.configurator.BrandLogo" src="<%= deploymentURI %>/com_sun_web_ui/images/other/javalogo.gif" alt="Java(TM) Logo" border="0" height="55" width="31"></td>
34aa2e97a2a6d7c3c0a5be5121edfd51a31281acvboxsync </tr>
34aa2e97a2a6d7c3c0a5be5121edfd51a31281acvboxsync </table>
78a072e1b56619e3230735ae073668311232ec94vboxsync <table class="MstTblEnd" border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td><img name="RMRealm.mhCommon.EndorserLogo" src="<%= deploymentURI %>/com_sun_web_ui/images/masthead/masthead-sunname.gif" alt="Sun(TM) Microsystems, Inc." align="right" border="0" height="10" width="108" /></td></tr></table>
156101683587682f6d63b4af322f611d90b77fcevboxsync </div>
156101683587682f6d63b4af322f611d90b77fcevboxsync <table class="SkpMedGry1" border="0" cellpadding="5" cellspacing="0" width="100%"><tr><td><img src="<%= deploymentURI %>/com_sun_web_ui/images/other/dot.gif" alt="Jump to End of Masthead" border="0" height="1" width="1"></td></tr></table>
156101683587682f6d63b4af322f611d90b77fcevboxsync <table border="0" cellpadding="10" cellspacing="0" width="100%"><tr><td></td></tr></table>
156101683587682f6d63b4af322f611d90b77fcevboxsync <table cellpadding=5>
78a072e1b56619e3230735ae073668311232ec94vboxsync <tr>
78a072e1b56619e3230735ae073668311232ec94vboxsync <td>
78a072e1b56619e3230735ae073668311232ec94vboxsync <%
78a072e1b56619e3230735ae073668311232ec94vboxsync if ( wreply!=null && wreply.length()>0 )
78a072e1b56619e3230735ae073668311232ec94vboxsync {
78a072e1b56619e3230735ae073668311232ec94vboxsync %>
78a072e1b56619e3230735ae073668311232ec94vboxsync <script>
78a072e1b56619e3230735ae073668311232ec94vboxsync document.write("<p id=\"logoutPrompt\">Signing out of <%=displayName%></p>");
78a072e1b56619e3230735ae073668311232ec94vboxsync </script>
78a072e1b56619e3230735ae073668311232ec94vboxsync <noscript>
78a072e1b56619e3230735ae073668311232ec94vboxsync <p><a href="<%=wreply%>">Click here</a> to continue</p>
e7a38576d54d605f0a98a9646abb201ff8d995e4vboxsync </noscript>
78a072e1b56619e3230735ae073668311232ec94vboxsync <%
78a072e1b56619e3230735ae073668311232ec94vboxsync }
78a072e1b56619e3230735ae073668311232ec94vboxsync %>
78a072e1b56619e3230735ae073668311232ec94vboxsync <%
78a072e1b56619e3230735ae073668311232ec94vboxsync for ( String url : providerList.keySet() )
78a072e1b56619e3230735ae073668311232ec94vboxsync {
78a072e1b56619e3230735ae073668311232ec94vboxsync %>
78a072e1b56619e3230735ae073668311232ec94vboxsync <p>Signing out from <%=providerList.get(url)%></p>
78a072e1b56619e3230735ae073668311232ec94vboxsync <iframe width="500" src="<%=url%>"></iframe>
78a072e1b56619e3230735ae073668311232ec94vboxsync <%
78a072e1b56619e3230735ae073668311232ec94vboxsync }
78a072e1b56619e3230735ae073668311232ec94vboxsync %>
78a072e1b56619e3230735ae073668311232ec94vboxsync </td>
78a072e1b56619e3230735ae073668311232ec94vboxsync </tr>
78a072e1b56619e3230735ae073668311232ec94vboxsync </table>
78a072e1b56619e3230735ae073668311232ec94vboxsync </body>
78a072e1b56619e3230735ae073668311232ec94vboxsync</html>
78a072e1b56619e3230735ae073668311232ec94vboxsync