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
FieldsModifier and TypeFieldDescriptionprivate BindingDescriptorOptionalBindingDescriptorto inject intoSAMLBindingContextcreated.private final IdentifierGenerationStrategyID generator.private final org.slf4j.LoggerClass logger.private final org.slf4j.LoggerUsed to log protocol messages.static final StringName of the query parameter carrying the service provider entity ID: "providerId" .static final StringName of the query parameter carrying the service provider's assertion consumer service URL: "shire" .static final StringName of the query parameter carrying the service provider's target/RelayState information: "target" .static final StringName of the query parameter carrying the current time at the service provider: "time" . -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected IdPInitiatedSSORequestBuild 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.Get an optionalBindingDescriptorto inject intoSAMLBindingContextcreated.protected StringgetEntityId(javax.servlet.http.HttpServletRequest request) Gets the entity ID of the service provider.protected StringConstruct a message ID for the request.protected abstract StringGet 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 voidLog 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
doInitialize, getHttpServletRequest, getHttpServletRequestSupplier, setHttpServletRequest, setHttpServletRequestSupplierMethods inherited from class org.opensaml.messaging.decoder.AbstractMessageDecoder
doDecode, doDestroy, getMessageContext, setMessageContextMethods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, initialize, isDestroyed, isInitializedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.shibboleth.utilities.java.support.component.DestructableComponent
destroy, isDestroyedMethods inherited from interface net.shibboleth.utilities.java.support.component.InitializableComponent
initialize, isInitializedMethods inherited from interface org.opensaml.messaging.decoder.MessageDecoder
getMessageContext
-
Field Details
-
PROVIDER_ID_PARAM
Name of the query parameter carrying the service provider entity ID: "providerId" .- See Also:
-
SHIRE_PARAM
Name of the query parameter carrying the service provider's assertion consumer service URL: "shire" .- See Also:
-
TARGET_PARAM
Name of the query parameter carrying the service provider's target/RelayState information: "target" .- See Also:
-
TIME_PARAM
Name of the query parameter carrying the current time at the service provider: "time" .- See Also:
-
log
@Nonnull private final org.slf4j.Logger logClass logger. -
bindingDescriptor
OptionalBindingDescriptorto inject intoSAMLBindingContextcreated. -
protocolMessageLog
@Nonnull private final org.slf4j.Logger protocolMessageLogUsed to log protocol messages. -
idGenerator
ID generator.
-
-
Constructor Details
-
BaseIdPInitiatedSSORequestMessageDecoder
public BaseIdPInitiatedSSORequestMessageDecoder()
-
-
Method Details
-
getBindingDescriptor
Get an optionalBindingDescriptorto inject intoSAMLBindingContextcreated.- Returns:
- binding descriptor
-
setBindingDescriptor
Set an optionalBindingDescriptorto inject intoSAMLBindingContextcreated.- Parameters:
descriptor- a binding descriptor
-
decode
- Specified by:
decodein interfaceMessageDecoder- Overrides:
decodein classAbstractHttpServletRequestMessageDecoder- Throws:
MessageDecodingException
-
buildIdPInitiatedSSORequest
@Nonnull protected IdPInitiatedSSORequest buildIdPInitiatedSSORequest() throws MessageDecodingExceptionBuild 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
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
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
Construct a message ID for the request.- Returns:
- the message ID to use
-
getMessageToLog
Get the string representation of what will be logged as the protocol message.- Returns:
- the string representing the protocol message for logging purposes
-