4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Copyright (c) 2007 Sun Microsystems Inc. All Rights Reserved
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * The contents of this file are subject to the terms
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * of the Common Development and Distribution License
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * (the License). You may not use this file except in
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * compliance with the License.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * You can obtain a copy of the License at
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * https://opensso.dev.java.net/public/CDDLv1.0.html or
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * See the License for the specific language governing
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * permission and limitations under the License.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * When distributing Covered Code, include this CDDL
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Header Notice in each file and include the License file
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * If applicable, add the following below the CDDL Header,
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * with the fields enclosed by brackets [] replaced by
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * your own identifying information:
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * "Portions Copyrighted [year] [name of copyright owner]"
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * $Id: FSDefaultSPAdapter.java,v 1.6 2008/06/25 05:49:54 qcheng Exp $
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.authentication.util.ISAuthConstants;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.accountmgmt.FSAccountFedInfoKey;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.accountmgmt.FSAccountManager;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.accountmgmt.FSAccountMgmtException;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.common.FederationException;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.common.FSUtils;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.common.IFSConstants;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.common.LogUtil;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.jaxb.entityconfig.SPDescriptorConfigElement;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.message.FSAuthenticationStatement;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.message.FSAssertion;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.message.FSAuthnRequest;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.message.FSAuthnResponse;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.message.FSFederationTerminationNotification;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.message.FSLogoutNotification;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.message.FSLogoutResponse;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.message.FSNameRegistrationRequest;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.message.FSNameRegistrationResponse;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.message.FSResponse;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.message.FSSubject;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.meta.IDFFMetaException;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.meta.IDFFMetaManager;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.federation.services.util.FSServiceUtils;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.idm.AMIdentityRepository;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.saml.assertion.NameIdentifier;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.saml.assertion.Statement;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.saml.protocol.StatusCode;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.security.AdminTokenAction;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterimport com.sun.identity.shared.encode.URLEncDec;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Fosterpublic class FSDefaultSPAdapter implements FederationSPAdapter {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Initializes the federation adapter, this method will only be executed
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * once after creation of the adapter instance.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param hostedProviderID provider ID for the hosted SP
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param initParams initial set of parameters configured in the service
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * provider for this adapter
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster public void initialize(String hostedProviderID, Set initParams) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSUtils.debug.message("In FSDefaultSPAdapter.initialize.");
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster if ((initParams != null) && !initParams.isEmpty()) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster "FSDefaultSPAdapter.init:Could not get realm:",
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster if ((realm == null) || (realm.length() == 0)) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Invokes before federation manager sends the Single-Sing-On and Federation * request to IDP.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param hostedProviderID provider ID for the hosted SP
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param idpProviderID provider id for the IDP to which the request will
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param request servlet request
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param response servlet response
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param authnRequest the authentication request to be send to IDP
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSUtils.debug.message("In FSDefaultSPAdapter.preSSOFederationRequest.");
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Invokes when the FM received the Single-Sign-On and Federation response
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * from the IDP, this is called before any processing started on SP side.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param hostedProviderID provider ID for the hosted SP
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param request servlet request
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param response servlet response
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param authnRequest the original authentication request sent from SP
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param authnResponse response from IDP if Browser POST or LECP profile
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * is used for the request, value will be null if Browser Artifact
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * profile is used.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param samlResponse response from IDP if Browser Artifact profile is used
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * for the request, value will be null if Browser POST or LECP
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * profile is used.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @exception FederationException if user want to fail the process.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSUtils.debug.message("In FSDefaultSPAdapter.preSSOFederationProcess.");
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Invokes this method after the successful Single Sign-On or Federation.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param hostedEntityID provider ID for the hosted SP
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param request servlet request
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param response servlet response
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param ssoToken user's SSO token
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param authnRequest the original authentication request sent from SP
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param authnResponse response from IDP if Browser POST or LECP profile
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * is used for the request, value will be null if Browser Artifact
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * profile is used.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param samlResponse response from IDP if Browser Artifact profile is used
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * for the request, value will be null if Browser POST or LECP
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * profile is used.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @exception FederationException if user want to fail the process.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @return true if browser redirection happened, false otherwise.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSUtils.debug.message("FSDefaultSPAdapter.postFedSuccess, "
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster // find out if this is a federation request
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster boolean isFederation = false;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSUtils.debug.error("FSDefaultSPAdapter.postFedSuccess null");
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster String nameIDPolicy = authnRequest.getNameIDPolicy();
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSUtils.debug.message("FSDefaultSPAdapter.postSuccess "
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster if (nameIDPolicy.equals(IFSConstants.NAME_ID_POLICY_FEDERATED)) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster AccessController.doPrivileged(AdminTokenAction.getInstance());
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster // get name Identifier
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster // POST profile
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster // Artifact profile
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSUtils.debug.message("FSAdapter.postSuccess: idp="
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster Iterator stmtIter = assertion.getStatement().iterator();
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster Statement statement = (Statement) stmtIter.next();
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster if (stmtType == Statement.AUTHENTICATION_STATEMENT) {
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSUtils.debug.message("FSAdapter.postSuccess: "
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSUtils.debug.warning("FSAdapter.postSuc : null nameID");
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster return false;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster set.add("|" + hostedEntityID + "|" + nameId + "|");
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster map.put("iplanet-am-user-federation-info-key", set);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster AMIdentityRepository idRepo = new AMIdentityRepository(
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster IdSearchControl searchControl = new IdSearchControl();
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster searchControl.setSearchModifiers(IdSearchOpModifier.AND, map);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster IdSearchResults searchResults = idRepo.searchIdentities(
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster Set amIdSet = searchResults.getSearchResults();
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster String univId = ((SSOToken) ssoToken).getProperty(
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSUtils.debug.message("FSAdapter.postSuccess: found "
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster + amIdSet.size() + " federation with same ID as "
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSUtils.debug.message("FSAdapter.postSuccess: "
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster new FSAccountFedInfoKey(hostedEntityID, nameId);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster // previous federation exists with different users
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster // compare with the SSO token
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster String tmpUnivId = IdUtils.getUniversalId(amId);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster // remove federation information for this user
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster accManager.removeAccountFedInfo(tmpUnivId, fedInfoKey,
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSUtils.debug.warning("FSDefaultSPAdapter.postSSOSuccess", f);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSUtils.debug.warning("FSDefaultSPAdapter.postSSOSuccess", i);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSUtils.debug.warning("FSDefaultSPAdapter.postSSOSuccess", e);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster return false;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Invokes this method if the Single-Sign-On or Federation fails
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * for some reason.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param request servlet request
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param response servlet response
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param authnRequest the original authentication request sent from SP
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param authnResponse response from IDP if Browser POST or LECP profile
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * is used for the request, value will be null if Browser Artifact
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * profile is used.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param samlResponse response from IDP if Browser Artifact profile is used
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * for the request, value will be null if Browser POST or LECP
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * profile is used.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param failureCode an integer specifies the failure code.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @return true if browser redirection happened, false otherwise.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster public boolean postSSOFederationFailure(String hostedEntityID,
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSUtils.debug.message("FSDefaultSPAdapter.postFedFailure, "
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster String baseURL = FSServiceUtils.getBaseURL(request);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster String framedLoginPageURL = FSServiceUtils.getCommonLoginPageURL(
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster .append("&").append(IFSConstants.FAILURE_CODE).append("=")
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster StatusCode firstLevelStatusCode = status.getStatusCode();
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSUtils.debug.message("FSDefaultSPAdapter.postSSO" +
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster "FederationFailure: Status is null");
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster return false;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSUtils.debug.message("FSDefaultSPAdapter.postSSO" +
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster "FederationFailure: Second level status is empty");
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster return false;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster sb.append("&").append(IFSConstants.STATUS_CODE).append("=")
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSUtils.debug.message("FSDefaultSPAdapter.postSSOFederation" +
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster "Failure. URL to be redirected: " + redirectURL);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSUtils.debug.error("FSDefaultSPAdapter.postSSOFedFailure", io);
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster return false;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster return true;
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Invokes after Register Name Identifier processing is successful
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param hostedProviderID provider ID for the hosted SP
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param request servlet request
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param response servlet response
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param userDN DN of the user with whom name identifier registration
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param regRequest register name identifier request, value will be
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * null if the request object is not available
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param regResponse register name identifier response, value will be
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * null if the response object is not available
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param regProfile register name identifier profile used, one of following
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * <code>IFSConstants.NAME_REGISTRATION_SP_HTTP_PROFILE</code>
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * <code>IFSConstants.NAME_REGISTRATION_SP_SOAP_PROFILE</code>
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * <code>IFSConstants.NAME_REGISTRATION_IDP_HTTP_PROFILE</code>
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * <code>IFSConstants.NAME_REGISTRATION_IDP_SOAP_PROFILE</code>
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster "In FSDefaultSPAdapter.postRegistrationNameIdentifierSuccess");
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Invokes after the service provider successfully terminates federation
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param hostedProviderID provider ID for the hosted SP
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param request servlet request
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param response servlet response
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param userDN DN of the user with whom name identifier registration
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param notification federation termination notification message
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param termProfile federation termination profile used, one of following
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * <code>IFSConstants.TERMINATION_SP_HTTP_PROFILE</code>
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * <code>IFSConstants.TERMINATION_SP_SOAP_PROFILE</code>
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * <code>IFSConstants.TERMINATION_IDP_HTTP_PROFILE</code>
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * <code>IFSConstants.TERMINATION_IDP_SOAP_PROFILE</code>
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster public void postTerminationNotificationSuccess(
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSFederationTerminationNotification notification,
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster "In FSDefaultSPAdapter.postTerminationNotificationSuccess.");
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Invokes before single logout process started on FM side. This method
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * is called before the user token is invalidated on the service provider
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param hostedProviderID provider ID for the hosted SP
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param request servlet request
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param response servlet response
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param userDN user DN
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param logoutRequest single logout request object
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param logoutResponse single logout response, value will be
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * null if the response object is not available
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param sloProfile single logout profile used, one of following
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * <code>IFSConstants.LOGOUT_SP_REDIRECT_PROFILE</code>
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * <code>IFSConstants.LOGOUT_SP_SOAP_PROFILE</code>
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * <code>IFSConstants.LOGOUT_IDP_REDIRECT_PROFILE</code>
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * <code>IFSConstants.LOGOUT_IDP_SOAP_PROFILE</code>
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSUtils.debug.message("In FSDefaultSPAdapter.preSingleLogoutProcess.");
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * Invokes after single logout is successful completed, i.e. user token
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * has been invalidated.
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param hostedProviderID provider ID for the hosted SP
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param request servlet request
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param response servlet response
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param userDN user DN
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param logoutRequest single logout request, value will be
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * null if the request object is not available
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param logoutResponse single logout response, value will be
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * null if the response object is not available
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * @param sloProfile single logout profile used, one of following
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * <code>IFSConstants.LOGOUT_SP_HTTP_PROFILE</code>
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * <code>IFSConstants.LOGOUT_SP_SOAP_PROFILE</code>
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * <code>IFSConstants.LOGOUT_IDP_HTTP_PROFILE</code>
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster * <code>IFSConstants.LOGOUT_IDP_SOAP_PROFILE</code>
4a2f0f0be43dfd4c1b490cbf3cc48b6ba6084b1cAllan Foster FSUtils.debug.message("In FSDefaultSPAdapter.postSingleLogoutSuccess.");