spSingleLogoutInit.jsp revision e8721886dbfd32e88cc7077cbee4b6bb1b44b443
2122N/A $Id: spSingleLogoutInit.jsp,v 1.13 2009/10/15 00:01:11 exu Exp $
2086N/A<%@ page import="com.sun.identity.shared.debug.Debug" %>
2122N/A<%@ page import="com.sun.identity.plugin.session.SessionManager" %>
2122N/A<%@ page import="com.sun.identity.plugin.session.SessionException" %>
2122N/A<%@ page import="com.sun.identity.saml.common.SAMLUtils" %>
2122N/A<%@ page import="com.sun.identity.saml2.common.SAML2Utils" %>
2122N/A<%@ page import="com.sun.identity.saml2.common.SAML2Constants" %>
2122N/A<%@ page import="com.sun.identity.saml2.jaxb.entityconfig.SPSSOConfigElement" %>
2122N/A<%@ page import="com.sun.identity.saml2.meta.SAML2MetaManager" %>
2122N/A<%@ page import="com.sun.identity.saml2.meta.SAML2MetaUtils" %>
2122N/A<%@ page import="com.sun.identity.saml2.common.SAML2Exception" %>
2122N/A<%@ page import="com.sun.identity.saml2.profile.LogoutUtil" %>
2122N/A<%@ page import="com.sun.identity.saml2.profile.SPCache" %>
2122N/A<%@ page import="com.sun.identity.saml2.profile.SPSingleLogout" %>
2122N/A<%@ page import="java.util.HashMap" %>
2122N/A<%@ page import="java.util.List" %>
2086N/A if ((RelayState == null) || (RelayState.length() == 0)) {
2177N/A ssoToken = SessionManager.getProvider().getSession(request);
2177N/A if (SAML2Utils.debug.messageEnabled()) {
2177N/A SAML2Utils.debug.message("No session.");
2315N/A if (!SPCache.isFedlet) {
2315N/A "nullSSOToken",SAML2Utils.bundle.getString("nullSSOToken"));
2315N/A String[] values = SessionManager.getProvider().
2315N/A getProperty(ssoToken, SAML2Constants.SP_METAALIAS);
2315N/A if (values != null && values.length > 0) {
2110N/A spEntityID = request.getParameter("spEntityID");
2110N/A if ((spEntityID == null) || (spEntityID.length() == 0)) {
2086N/A if ((spMetaAliases != null) && !spMetaAliases.isEmpty()) {
2287N/A metaAlias = (String) spMetaAliases.get(0);
2110N/A manager.getSPSSOConfig("/", spEntityID);
2110N/A metaAlias = spConfig.getMetaAlias();
2110N/A SessionManager.getProvider().invalidateSession(
2110N/A if (SAML2Utils.debug.messageEnabled()) {
2110N/A SAML2Utils.debug.message("No session.");
2086N/A response.sendRedirect(RelayState);
2086N/A <jsp:forward page="/saml2/jsp/default.jsp?message=spSloSuccess"/>
2315N/A String idpEntityID = request.getParameter("idpEntityID");
2315N/A String binding = LogoutUtil.getSLOBindingInfo(request, metaAlias,
2315N/A SAML2Constants.SP_ROLE, idpEntityID);
2315N/A spEntityID = manager.getEntityByMetaAlias(metaAlias);
2086N/A String realm = SAML2MetaUtils.getRealmByMetaAlias(metaAlias);
2086N/A realm, spEntityID, SAML2Constants.SLO_SERVICE, binding))
2315N/A SAML2Utils.bundle.getString("unsupportedBinding"));
2243N/A * this parameter is /realm_name/SP_name.
2360N/A if (SPCache.isFedlet) {
2360N/A String sessionIndex = request.getParameter("SessionIndex");
2360N/A if ((sessionIndex == null) || (sessionIndex.length() == 0)) {
2086N/A SAML2Utils.bundle.getString("nullSessionIndex"));
2177N/A paramsMap.put("SessionIndex", sessionIndex);
2086N/A String nameID = request.getParameter("NameIDValue");
2086N/A if ((nameID == null) || (nameID.length() == 0)) {
2086N/A SAML2Utils.bundle.getString("nullNameID"));
2086N/A spEntityID = manager.getEntityByMetaAlias(metaAlias);
2177N/A SAMLUtils.sendError(request, response,
2177N/A SAML2Utils.bundle.getString("nullIDPEntityID"));
2086N/A paramsMap.put("metaAlias", metaAlias);
2086N/A paramsMap.put("idpEntityID", idpEntityID);
2086N/A if ((RelayState == null) || (RelayState.equals(""))) {
2086N/A RelayState = SAML2Utils.getAttributeValueFromSSOConfig(
2086N/A realm, spEntityID, SAML2Constants.SP_ROLE,
2086N/A String sessionIndex = request.getParameter("sessionIndex");
2086N/A SPSingleLogout.initiateLogoutRequest( request,response,
2086N/A if (RelayState != null && (!RelayState.equals(""))) {
2086N/A response.sendRedirect(RelayState);
2086N/A <jsp:forward page="/saml2/jsp/default.jsp?message=spSloSuccess"/>
2086N/A SAML2Utils.debug.error("Error sending Logout Request " , sse);
2086N/A SAML2Utils.bundle.getString("LogoutRequestCreationError") + " " +
2086N/A SAML2Utils.debug.error("Error initializing Request ",e);
2086N/A SAML2Utils.bundle.getString("LogoutRequestCreationError") + " " +
2086N/A e.getMessage());