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:
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.messaging.encoder.servlet.HttpServletResponseMessageEncoder,org.opensaml.saml.common.binding.encoding.SAMLMessageEncoder
public class HTTPPostSimpleSignEncoder extends HTTPPostEncoder
SAML 2.0 HTTP-POST-SimpleSign binding message encoder.
-
-
Field Summary
Fields Modifier and Type Field Description static StringDEFAULT_TEMPLATE_IDDefault template ID.private org.slf4j.LoggerlogClass logger.
-
Constructor Summary
Constructors Constructor Description HTTPPostSimpleSignEncoder()Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected StringbuildFormDataToSign(org.apache.velocity.VelocityContext velocityContext, org.opensaml.messaging.context.MessageContext messageContext, String sigAlgURI)Build the form control data string over which the signature is computed.protected StringbuildKeyInfo(org.opensaml.security.credential.Credential signingCredential, org.opensaml.xmlsec.keyinfo.KeyInfoGenerator kiGenerator)Build theKeyInfofrom the signing credential.protected StringgenerateSignature(org.opensaml.security.credential.Credential signingCredential, String algorithmURI, String formData)Generates the signature over the string of concatenated form control data as indicated by the SimpleSign spec.StringgetBindingURI()protected StringgetSignatureAlgorithmURI(org.opensaml.xmlsec.SignatureSigningParameters signingParameters)Gets the signature algorithm URI to use.protected voidpopulateVelocityContext(org.apache.velocity.VelocityContext velocityContext, org.opensaml.messaging.context.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
-
-
-
-
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:
getBindingURIin interfaceorg.opensaml.saml.common.binding.encoding.SAMLMessageEncoder- Overrides:
getBindingURIin classHTTPPostEncoder
-
populateVelocityContext
protected void populateVelocityContext(org.apache.velocity.VelocityContext velocityContext, org.opensaml.messaging.context.MessageContext messageContext, String endpointURL) throws org.opensaml.messaging.encoder.MessageEncodingExceptionPopulate the Velocity context instance which will be used to render the POST body.- Overrides:
populateVelocityContextin 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:
org.opensaml.messaging.encoder.MessageEncodingException- thrown if there is a problem encoding the message
-
buildKeyInfo
protected String buildKeyInfo(org.opensaml.security.credential.Credential signingCredential, org.opensaml.xmlsec.keyinfo.KeyInfoGenerator kiGenerator) throws org.opensaml.messaging.encoder.MessageEncodingException
Build theKeyInfofrom 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:
org.opensaml.messaging.encoder.MessageEncodingException- thrown if there is an error generating or marshalling the KeyInfo
-
buildFormDataToSign
protected String buildFormDataToSign(org.apache.velocity.VelocityContext velocityContext, org.opensaml.messaging.context.MessageContext messageContext, String sigAlgURI) throws org.opensaml.messaging.encoder.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:
org.opensaml.messaging.encoder.MessageEncodingException- if there is an issue building the form to sign.
-
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 formData) throws org.opensaml.messaging.encoder.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:
org.opensaml.messaging.encoder.MessageEncodingException- there is an error computing the signature
-
-