Class Pac4jHTTPRedirectDeflateEncoder

  • All Implemented Interfaces:
    net.shibboleth.utilities.java.support.component.Component, net.shibboleth.utilities.java.support.component.DestructableComponent, net.shibboleth.utilities.java.support.component.InitializableComponent, net.shibboleth.utilities.java.support.component.UnmodifiableComponent, org.opensaml.messaging.encoder.MessageEncoder<org.opensaml.saml.common.SAMLObject>

    public class Pac4jHTTPRedirectDeflateEncoder
    extends org.opensaml.messaging.encoder.AbstractMessageEncoder<org.opensaml.saml.common.SAMLObject>
    Pac4j implementation extending directly the AbstractMessageEncoder as intermediate classes use the J2E HTTP response. It's mostly a copy/paste of the source code of these intermediate opensaml classes.
    Since:
    1.8
    Author:
    Misagh Moayyed
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected String buildRedirectURL​(org.opensaml.messaging.context.MessageContext<org.opensaml.saml.common.SAMLObject> messageContext, String endpoint, String message)
      Builds the URL to redirect the client to.
      protected void doEncode()  
      protected void doInitialize()  
      protected String generateSignature​(org.opensaml.security.credential.Credential signingCredential, String algorithmURI, String queryString)
      Generates the signature over the query string.
      protected URI getEndpointURL​(org.opensaml.messaging.context.MessageContext<org.opensaml.saml.common.SAMLObject> messageContext)
      Gets the response URL from the message context.
      protected String getSignatureAlgorithmURI​(org.opensaml.xmlsec.SignatureSigningParameters signingParameters)
      Gets the signature algorithm URI to use.
      protected Element marshallMessage​(org.opensaml.core.xml.XMLObject message)
      Helper method that marshalls the given message.
      protected void removeSignature​(org.opensaml.saml.common.SAMLObject message)
      Removes the signature from the protocol message.
      • Methods inherited from class org.opensaml.messaging.encoder.AbstractMessageEncoder

        doDestroy, encode, getMessageContext, prepareContext, setMessageContext
      • Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent

        destroy, initialize, isDestroyed, isInitialized
      • Methods inherited from interface net.shibboleth.utilities.java.support.component.DestructableComponent

        destroy, isDestroyed
      • Methods inherited from interface net.shibboleth.utilities.java.support.component.InitializableComponent

        initialize, isInitialized
    • Constructor Detail

      • Pac4jHTTPRedirectDeflateEncoder

        public Pac4jHTTPRedirectDeflateEncoder​(Pac4jSAMLResponse responseAdapter,
                                               boolean isAuthnRequestSigned)
    • Method Detail

      • doEncode

        protected void doEncode()
                         throws org.opensaml.messaging.encoder.MessageEncodingException
        Specified by:
        doEncode in class org.opensaml.messaging.encoder.AbstractMessageEncoder<org.opensaml.saml.common.SAMLObject>
        Throws:
        org.opensaml.messaging.encoder.MessageEncodingException
      • doInitialize

        protected void doInitialize()
                             throws net.shibboleth.utilities.java.support.component.ComponentInitializationException
        Overrides:
        doInitialize in class org.opensaml.messaging.encoder.AbstractMessageEncoder<org.opensaml.saml.common.SAMLObject>
        Throws:
        net.shibboleth.utilities.java.support.component.ComponentInitializationException
      • getEndpointURL

        protected URI getEndpointURL​(org.opensaml.messaging.context.MessageContext<org.opensaml.saml.common.SAMLObject> messageContext)
                              throws org.opensaml.messaging.encoder.MessageEncodingException
        Gets the response URL from the message context.
        Parameters:
        messageContext - current message context
        Returns:
        response URL from the message context
        Throws:
        org.opensaml.messaging.encoder.MessageEncodingException - throw if no relying party endpoint is available
      • removeSignature

        protected void removeSignature​(org.opensaml.saml.common.SAMLObject message)
        Removes the signature from the protocol message.
        Parameters:
        message - current message context
      • marshallMessage

        protected Element marshallMessage​(org.opensaml.core.xml.XMLObject message)
                                   throws org.opensaml.messaging.encoder.MessageEncodingException
        Helper method that marshalls the given message.
        Parameters:
        message - message the marshall and serialize
        Returns:
        marshalled message
        Throws:
        org.opensaml.messaging.encoder.MessageEncodingException - thrown if the give message can not be marshalled into its DOM representation
      • buildRedirectURL

        protected String buildRedirectURL​(org.opensaml.messaging.context.MessageContext<org.opensaml.saml.common.SAMLObject> messageContext,
                                          String endpoint,
                                          String message)
                                   throws org.opensaml.messaging.encoder.MessageEncodingException
        Builds the URL to redirect the client to.
        Parameters:
        messageContext - current message context
        endpoint - endpoint URL to send encoded message to
        message - Deflated and Base64 encoded message
        Returns:
        URL to redirect client to
        Throws:
        org.opensaml.messaging.encoder.MessageEncodingException - thrown if the SAML message is neither a RequestAbstractType or Response
      • getSignatureAlgorithmURI

        protected String getSignatureAlgorithmURI​(org.opensaml.xmlsec.SignatureSigningParameters signingParameters)
                                           throws org.opensaml.messaging.encoder.MessageEncodingException
        Gets the signature algorithm URI to use.
        Parameters:
        signingParameters - the signing parameters to use
        Returns:
        signature algorithm to use with the associated signing credential
        Throws:
        org.opensaml.messaging.encoder.MessageEncodingException - thrown if the algorithm URI is not supplied explicitly and could not be derived from the supplied credential
      • generateSignature

        protected String generateSignature​(org.opensaml.security.credential.Credential signingCredential,
                                           String algorithmURI,
                                           String queryString)
                                    throws org.opensaml.messaging.encoder.MessageEncodingException
        Generates the signature over the query string.
        Parameters:
        signingCredential - credential that will be used to sign query string
        algorithmURI - algorithm URI of the signing credential
        queryString - query string to be signed
        Returns:
        base64 encoded signature of query string
        Throws:
        org.opensaml.messaging.encoder.MessageEncodingException - there is an error computing the signature