Class HTTPPostSimpleSignEncoder
- java.lang.Object
-
- net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
-
- org.opensaml.messaging.encoder.AbstractMessageEncoder
-
- org.opensaml.messaging.encoder.servlet.AbstractHttpServletResponseMessageEncoder
-
- org.opensaml.messaging.encoder.servlet.BaseHttpServletResponseXMLMessageEncoder
-
- org.opensaml.saml.saml2.binding.encoding.impl.BaseSAML2MessageEncoder
-
- org.opensaml.saml.saml2.binding.encoding.impl.HTTPPostEncoder
-
- org.opensaml.saml.saml2.binding.encoding.impl.HTTPPostSimpleSignEncoder
-
- All Implemented Interfaces:
Component
,DestructableComponent
,InitializableComponent
,UnmodifiableComponent
,MessageEncoder
,HttpServletResponseMessageEncoder
,SAMLMessageEncoder
public class HTTPPostSimpleSignEncoder extends HTTPPostEncoder
SAML 2.0 HTTP-POST-SimpleSign binding message encoder.
-
-
Field Summary
Fields Modifier and Type Field Description static String
DEFAULT_TEMPLATE_ID
Default template ID.private org.slf4j.Logger
log
Class logger.
-
Constructor Summary
Constructors Constructor Description HTTPPostSimpleSignEncoder()
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected String
buildFormDataToSign(org.apache.velocity.VelocityContext velocityContext, MessageContext messageContext, String sigAlgURI)
Build the form control data string over which the signature is computed.protected String
buildKeyInfo(Credential signingCredential, KeyInfoGenerator kiGenerator)
Build theKeyInfo
from the signing credential.protected String
generateSignature(Credential signingCredential, String algorithmURI, String formData)
Generates the signature over the string of concatenated form control data as indicated by the SimpleSign spec.String
getBindingURI()
protected String
getSignatureAlgorithmURI(SignatureSigningParameters signingParameters)
Gets the signature algorithm URI to use.protected void
populateVelocityContext(org.apache.velocity.VelocityContext velocityContext, MessageContext messageContext, String endpointURL)
Populate the Velocity context instance which will be used to render the POST body.-
Methods inherited from class org.opensaml.saml.saml2.binding.encoding.impl.HTTPPostEncoder
doDestroy, doEncode, doInitialize, getVelocityEngine, getVelocityTemplateId, postEncode, setVelocityEngine, setVelocityTemplateId
-
Methods inherited from class org.opensaml.saml.saml2.binding.encoding.impl.BaseSAML2MessageEncoder
getEndpointURL
-
Methods inherited from class org.opensaml.messaging.encoder.servlet.BaseHttpServletResponseXMLMessageEncoder
encode, getMessageToLog, logEncodedMessage, marshallMessage
-
Methods inherited from class org.opensaml.messaging.encoder.servlet.AbstractHttpServletResponseMessageEncoder
getHttpServletResponse, setHttpServletResponse
-
Methods inherited from class org.opensaml.messaging.encoder.AbstractMessageEncoder
getMessageContext, prepareContext, setMessageContext
-
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, initialize, isDestroyed, isInitialized
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
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
-
Methods inherited from interface org.opensaml.messaging.encoder.MessageEncoder
encode, prepareContext, setMessageContext
-
-
-
-
Field Detail
-
DEFAULT_TEMPLATE_ID
public static final String DEFAULT_TEMPLATE_ID
Default template ID.- See Also:
- Constant Field Values
-
log
private final org.slf4j.Logger log
Class logger.
-
-
Method Detail
-
getBindingURI
public String getBindingURI()
- Specified by:
getBindingURI
in interfaceSAMLMessageEncoder
- Overrides:
getBindingURI
in classHTTPPostEncoder
-
populateVelocityContext
protected void populateVelocityContext(org.apache.velocity.VelocityContext velocityContext, MessageContext messageContext, String endpointURL) throws MessageEncodingException
Populate the Velocity context instance which will be used to render the POST body.- Overrides:
populateVelocityContext
in classHTTPPostEncoder
- Parameters:
velocityContext
- the Velocity context instance to populate with datamessageContext
- the SAML message context source of dataendpointURL
- endpoint URL to which to encode message- Throws:
MessageEncodingException
- thrown if there is a problem encoding the message
-
buildKeyInfo
protected String buildKeyInfo(Credential signingCredential, KeyInfoGenerator kiGenerator) throws MessageEncodingException
Build theKeyInfo
from the signing credential.- Parameters:
signingCredential
- the credential used for signingkiGenerator
- the generator for the KeyInfo- Returns:
- the marshalled, serialized and base64-encoded KeyInfo, or null if none was generated
- Throws:
MessageEncodingException
- thrown if there is an error generating or marshalling the KeyInfo
-
buildFormDataToSign
protected String buildFormDataToSign(org.apache.velocity.VelocityContext velocityContext, MessageContext messageContext, String sigAlgURI) throws MessageEncodingException
Build the form control data string over which the signature is computed.- Parameters:
velocityContext
- the Velocity context which is already populated with the values for SAML message and relay statemessageContext
- the SAML message context being processedsigAlgURI
- the signature algorithm URI- Returns:
- the form control data string for signature computation
- Throws:
MessageEncodingException
- if there is an issue building the form to sign.
-
getSignatureAlgorithmURI
protected String getSignatureAlgorithmURI(SignatureSigningParameters signingParameters) throws 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:
MessageEncodingException
- thrown if the algorithm URI is not supplied explicitly and could not be derived from the supplied credential
-
generateSignature
protected String generateSignature(Credential signingCredential, String algorithmURI, String formData) throws MessageEncodingException
Generates the signature over the string of concatenated form control data as indicated by the SimpleSign spec.- Parameters:
signingCredential
- credential that will be used to signalgorithmURI
- algorithm URI of the signing credentialformData
- form control data to be signed- Returns:
- base64 encoded signature of form control data
- Throws:
MessageEncodingException
- there is an error computing the signature
-
-