Class BaseIdPInitiatedSSORequestMessageDecoder
- java.lang.Object
-
- net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
-
- org.opensaml.messaging.decoder.AbstractMessageDecoder
-
- org.opensaml.messaging.decoder.servlet.AbstractHttpServletRequestMessageDecoder
-
- net.shibboleth.idp.saml.profile.impl.BaseIdPInitiatedSSORequestMessageDecoder
-
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,UnmodifiableComponent,MessageDecoder,HttpServletRequestMessageDecoder
- Direct Known Subclasses:
IdPInitiatedSSORequestMessageDecoder,IdPInitiatedSSORequestMessageDecoder
@NotThreadSafe public abstract class BaseIdPInitiatedSSORequestMessageDecoder extends AbstractHttpServletRequestMessageDecoder
Decodes an incoming Shibboleth Authentication Request message.
-
-
Field Summary
Fields Modifier and Type Field Description private BindingDescriptorbindingDescriptorOptionalBindingDescriptorto inject intoSAMLBindingContextcreated.private IdentifierGenerationStrategyidGeneratorID generator.private org.slf4j.LoggerlogClass logger.private org.slf4j.LoggerprotocolMessageLogUsed to log protocol messages.static StringPROVIDER_ID_PARAMName of the query parameter carrying the service provider entity ID: "providerId" .static StringSHIRE_PARAMName of the query parameter carrying the service provider's assertion consumer service URL: "shire" .static StringTARGET_PARAMName of the query parameter carrying the service provider's target/RelayState information: "target" .static StringTIME_PARAMName of the query parameter carrying the current time at the service provider: "time" .
-
Constructor Summary
Constructors Constructor Description BaseIdPInitiatedSSORequestMessageDecoder()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected IdPInitiatedSSORequestbuildIdPInitiatedSSORequest()Build a new IdP-initiated request structure from the inbound HTTP request.voiddecode()protected StringgetAcsUrl(javax.servlet.http.HttpServletRequest request)Gets the assertion consumer service URL for the service provider.BindingDescriptorgetBindingDescriptor()Get an optionalBindingDescriptorto inject intoSAMLBindingContextcreated.protected StringgetEntityId(javax.servlet.http.HttpServletRequest request)Gets the entity ID of the service provider.protected StringgetMessageID()Construct a message ID for the request.protected abstract StringgetMessageToLog()Get the string representation of what will be logged as the protocol message.protected StringgetTarget(javax.servlet.http.HttpServletRequest request)Gets the opaque relay state sent by the service provider.protected InstantgetTime(javax.servlet.http.HttpServletRequest request)Gets the current time at the SP, if set.protected voidlogDecodedMessage()Log the decoded message to the protocol message logger.voidsetBindingDescriptor(BindingDescriptor descriptor)Set an optionalBindingDescriptorto inject intoSAMLBindingContextcreated.-
Methods inherited from class org.opensaml.messaging.decoder.servlet.AbstractHttpServletRequestMessageDecoder
doDestroy, doInitialize, getHttpServletRequest, setHttpServletRequest
-
Methods inherited from class org.opensaml.messaging.decoder.AbstractMessageDecoder
doDecode, getMessageContext, 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.decoder.MessageDecoder
getMessageContext
-
-
-
-
Field Detail
-
PROVIDER_ID_PARAM
@Nonnull @NotEmpty public static final String PROVIDER_ID_PARAM
Name of the query parameter carrying the service provider entity ID: "providerId" .- See Also:
- Constant Field Values
-
SHIRE_PARAM
@Nonnull @NotEmpty public static final String SHIRE_PARAM
Name of the query parameter carrying the service provider's assertion consumer service URL: "shire" .- See Also:
- Constant Field Values
-
TARGET_PARAM
@Nonnull @NotEmpty public static final String TARGET_PARAM
Name of the query parameter carrying the service provider's target/RelayState information: "target" .- See Also:
- Constant Field Values
-
TIME_PARAM
@Nonnull @NotEmpty public static final String TIME_PARAM
Name of the query parameter carrying the current time at the service provider: "time" .- See Also:
- Constant Field Values
-
log
@Nonnull private final org.slf4j.Logger log
Class logger.
-
bindingDescriptor
@Nullable private BindingDescriptor bindingDescriptor
OptionalBindingDescriptorto inject intoSAMLBindingContextcreated.
-
protocolMessageLog
@Nonnull private final org.slf4j.Logger protocolMessageLog
Used to log protocol messages.
-
idGenerator
@Nonnull private final IdentifierGenerationStrategy idGenerator
ID generator.
-
-
Method Detail
-
getBindingDescriptor
@Nullable public BindingDescriptor getBindingDescriptor()
Get an optionalBindingDescriptorto inject intoSAMLBindingContextcreated.- Returns:
- binding descriptor
-
setBindingDescriptor
public void setBindingDescriptor(@Nullable BindingDescriptor descriptor)Set an optionalBindingDescriptorto inject intoSAMLBindingContextcreated.- Parameters:
descriptor- a binding descriptor
-
decode
public void decode() throws MessageDecodingException- Specified by:
decodein interfaceMessageDecoder- Overrides:
decodein classAbstractHttpServletRequestMessageDecoder- Throws:
MessageDecodingException
-
buildIdPInitiatedSSORequest
@Nonnull protected IdPInitiatedSSORequest buildIdPInitiatedSSORequest() throws MessageDecodingException
Build a new IdP-initiated request structure from the inbound HTTP request.- Returns:
- the new SSO request structure
- Throws:
MessageDecodingException- if the request doesn't contain an entityID
-
getEntityId
@Nonnull @NotEmpty protected String getEntityId(@Nonnull javax.servlet.http.HttpServletRequest request) throws MessageDecodingException
Gets the entity ID of the service provider.- Parameters:
request- current HTTP request- Returns:
- the entity ID of the service provider
- Throws:
MessageDecodingException- thrown if the request does not contain a service provider entity ID
-
getAcsUrl
@Nullable protected String getAcsUrl(@Nonnull javax.servlet.http.HttpServletRequest request)
Gets the assertion consumer service URL for the service provider.- Parameters:
request- current HTTP request- Returns:
- the assertion consumer service URL, may be null if none is given in the request
-
getTarget
@Nullable protected String getTarget(@Nonnull javax.servlet.http.HttpServletRequest request)
Gets the opaque relay state sent by the service provider.- Parameters:
request- current HTTP request- Returns:
- the relay state, or null if the service provider did not send one
-
getTime
@Nullable protected Instant getTime(@Nonnull javax.servlet.http.HttpServletRequest request) throws MessageDecodingException
Gets the current time at the SP, if set.- Parameters:
request- current HTTP request- Returns:
- the time sent by the service provider, or null
- Throws:
MessageDecodingException- thrown if the time parameter given by the service provider is non-numeric or a negative time
-
logDecodedMessage
protected void logDecodedMessage()
Log the decoded message to the protocol message logger.
-
getMessageID
@Nonnull protected String getMessageID()
Construct a message ID for the request.- Returns:
- the message ID to use
-
getMessageToLog
@Nullable protected abstract String getMessageToLog()
Get the string representation of what will be logged as the protocol message.- Returns:
- the string representing the protocol message for logging purposes
-
-