Class BaseIdPInitiatedSSORequestMessageDecoder
java.lang.Object
net.shibboleth.shared.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.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" .Fields inherited from class org.opensaml.messaging.decoder.AbstractMessageDecoder
BASE_PROTOCOL_MESSAGE_LOGGER_CATEGORY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected IdPInitiatedSSORequestBuild a new IdP-initiated request structure from the inbound HTTP request.voiddecode()protected StringgetAcsUrl(HttpServletRequest request) Gets the assertion consumer service URL for the service provider.Get an optionalBindingDescriptorto inject intoSAMLBindingContextcreated.protected StringgetEntityId(HttpServletRequest request) Gets the entity ID of the service provider.protected StringConstruct a message ID for the request.protected StringgetTarget(HttpServletRequest request) Gets the opaque relay state sent by the service provider.protected InstantgetTime(HttpServletRequest request) Gets the current time at the SP, if set.voidsetBindingDescriptor(BindingDescriptor descriptor) Set an optionalBindingDescriptorto inject intoSAMLBindingContextcreated.Methods inherited from class org.opensaml.messaging.decoder.servlet.AbstractHttpServletRequestMessageDecoder
doInitialize, getHttpServletRequest, getHttpServletRequestSupplier, setHttpServletRequestSupplierMethods inherited from class org.opensaml.messaging.decoder.AbstractMessageDecoder
doDecode, getMessageContext, getMessageToLog, getProtocolMessageLogger, getProtocolMessageLoggerSubCategory, logDecodedMessage, serializeMessageForLogging, setMessageContext, setProtocolMessageLoggerSubCategoryMethods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent
checkComponentActive, checkSetterPreconditions, destroy, doDestroy, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, 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.shared.component.DestructableComponent
destroy, isDestroyedMethods inherited from interface net.shibboleth.shared.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. -
idGenerator
ID generator.
-
-
Constructor Details
-
BaseIdPInitiatedSSORequestMessageDecoder
public BaseIdPInitiatedSSORequestMessageDecoder()Constructor.
-
-
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 classAbstractMessageDecoder- 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 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 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
-
getMessageID
Construct a message ID for the request.- Returns:
- the message ID to use
-