Class FSSingleLogoutHandler


  • public class FSSingleLogoutHandler
    extends Object
    Work class that handles ID-FF single logout.
    • Constructor Detail

      • FSSingleLogoutHandler

        public FSSingleLogoutHandler()
    • Method Detail

      • setLogoutURL

        protected void setLogoutURL()
        Sets some commonly used URLs based on hosted provider.
      • setRelayState

        public void setRelayState​(String relayState)
        Sets the value of RelayState attribute.
        Parameters:
        relayState - the value of RelayState attribute.
      • setRealm

        public void setRealm​(String realm)
        Sets the realm in which the provider resides.
        Parameters:
        realm - the realm in which the provider resides
      • setSingleLogoutProtocol

        public void setSingleLogoutProtocol​(String protocol)
        Sets the single logout protocol to be used.
        Parameters:
        protocol - Single Logout Protocol to be set
      • handleSingleLogout

        public FSLogoutStatus handleSingleLogout​(jakarta.servlet.http.HttpServletResponse response,
                                                 jakarta.servlet.http.HttpServletRequest request,
                                                 FSSessionPartner currentSessionProvider,
                                                 String userID,
                                                 String sessionIndex,
                                                 boolean isWMLAgent,
                                                 Object ssoToken)
      • returnAfterCompletion

        protected void returnAfterCompletion()
        Invoked to either send back control to remote provider if logout message was received from one or to show the local logout status page to the user.
      • doIDPProxySoapProfile

        public FSLogoutStatus doIDPProxySoapProfile​(jakarta.servlet.http.HttpServletRequest request,
                                                    jakarta.servlet.http.HttpServletResponse response,
                                                    FSSessionPartner currentSessionProvider,
                                                    String userID,
                                                    String sessionIndex,
                                                    Object ssoToken)
      • setHostedDescriptor

        public void setHostedDescriptor​(com.sun.identity.liberty.ws.meta.jaxb.ProviderDescriptorType hostedProviderDesc)
        Sets the hosted provider details.
        Parameters:
        hostedProviderDesc - the descriptor of the hosted provider handling logout
      • setHostedDescriptorConfig

        public void setHostedDescriptorConfig​(com.sun.identity.federation.jaxb.entityconfig.BaseConfigType hostedConfig)
        Sets the hosted provider's extended meta config.
        Parameters:
        hostedConfig - hosted provider's extended meta config
      • setHostedEntityId

        public void setHostedEntityId​(String hostedEntityId)
        Sets hosted provider's entity id.
        Parameters:
        hostedEntityId - hosted provider's entity id.
      • setHostedProviderRole

        public void setHostedProviderRole​(String hostedRole)
        Sets hosted provider's role.
        Parameters:
        hostedRole - hosted provider's role
      • setMetaAlias

        public void setMetaAlias​(String metaAlias)
        Sets hosted provider's meta alias.
        Parameters:
        metaAlias - hosted provider's meta alias.
      • setRemoteDescriptor

        public void setRemoteDescriptor​(com.sun.identity.liberty.ws.meta.jaxb.ProviderDescriptorType remoteDesc)
        Sets the remote provider descriptor.
        Parameters:
        remoteDesc - Remote Provider Descriptor.
      • getRemoteDescriptor

        protected com.sun.identity.liberty.ws.meta.jaxb.ProviderDescriptorType getRemoteDescriptor​(String remoteEntityId)
        Gets the remote provider descriptor.
        Returns:
        remote provider descriptor
      • getProfileToCommunicateLogout

        protected String getProfileToCommunicateLogout()
        Determines the profile to be used to communicate logout.
        Returns:
        String the liberty defined logout profile
      • processHttpSingleLogoutRequest

        public FSLogoutStatus processHttpSingleLogoutRequest​(jakarta.servlet.http.HttpServletResponse response,
                                                             jakarta.servlet.http.HttpServletRequest request,
                                                             FSLogoutNotification reqLogout,
                                                             FSSessionPartner currentSessionProvider,
                                                             String userID,
                                                             Object ssoToken,
                                                             String sourceEntityId,
                                                             String sessionIndex,
                                                             boolean isWMLAgent,
                                                             String relayState,
                                                             String isSourceIDP)
        Processes the logout request received through http.
        Parameters:
        response - the HttpServletResponse object
        reqLogout - the logout request
        currentSessionProvider - initial provider with whom to broadcast
        userID - who is presently logging out
        ssoToken - user session
        sourceEntityId - source provider's entity id
        sessionIndex - to be sent as part of logout message
        isWMLAgent - determines if response to be sent to AML agent
        relayState - received with the logout request
        isSourceIDP - whether source provider is an IDP or not
        Returns:
        logout status
      • processSingleLogoutRequest

        protected FSLogoutStatus processSingleLogoutRequest​(FSLogoutNotification reqLogout,
                                                            FSSessionPartner currentSessionProvider,
                                                            String userID,
                                                            String sourceEntityId,
                                                            String sessionIndex,
                                                            boolean isWMLAgent,
                                                            String isSourceIDP)
        Processes the logout request received from soap profile.
        Parameters:
        reqLogout - the logout request
        currentSessionProvider - initial provider with whom to broadcast
        userID - who is presently logging out
        sourceEntityId - remote provider id
        sessionIndex - to be sent as part of logout message
        isWMLAgent - determines if response to be sent to AML agent
        isSourceIDP - determines the role of the provider
        Returns:
        logout status