Class SAMLAddAttributeConsumingServiceHandler
java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
org.opensaml.messaging.handler.AbstractMessageHandler
org.opensaml.saml.common.binding.impl.SAMLAddAttributeConsumingServiceHandler
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,MessageHandler
SAML
MessageHandler that attaches an AttributeConsumingServiceContext
to the SAMLMetadataContext based on the content of an AuthnRequest in the message context.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate classDefault lookup function that find a SAML 2AuthnRequest. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Function<MessageContext,AuthnRequest> Lookup strategy for anAuthnRequestindex.private IntegerAttributeConsumingServiceindex - if specified.private final org.slf4j.LoggerLogger.private Function<MessageContext,SAMLMetadataContext> Lookup strategy forSAMLMetadataContext.private Collection<RequestedAttribute>RequestedAttributelist - if specified. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate AttributeConsumingServiceGenerate anAttributeConsumingServicefrom theRequestedAttributes.protected voiddoInvoke(MessageContext messageContext) Performs the handler logic.protected booleandoPreInvoke(MessageContext messageContext) Called prior to execution, handlers may override this method to perform pre-processing for a request.protected Collection<RequestedAttribute>getRequestedAttributes(MessageContext messageContext, AuthnRequest authn) Grab theRequestedAttribute(if any) from theAuthnRequest.voidsetIndexLookupStrategy(Function<MessageContext, AuthnRequest> strategy) Set the strategy to locate theAttributeConsumingServiceindex from theMessageContext.voidSet the strategy to locate theSAMLMetadataContextfrom theMessageContext.Methods inherited from class org.opensaml.messaging.handler.AbstractMessageHandler
doPostInvoke, doPostInvoke, getActivationCondition, getLogPrefix, invoke, isPreInvokeCalled, setActivationConditionMethods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent
checkComponentActive, checkSetterPreconditions, destroy, doDestroy, doInitialize, 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.InitializableComponent
initialize, isInitialized
-
Field Details
-
log
@Nonnull private final org.slf4j.Logger logLogger. -
metadataContextLookupStrategy
Lookup strategy forSAMLMetadataContext. -
authnRequestLookupStrategy
Lookup strategy for anAuthnRequestindex. -
index
AttributeConsumingServiceindex - if specified. -
requestedAttributes
RequestedAttributelist - if specified.
-
-
Constructor Details
-
SAMLAddAttributeConsumingServiceHandler
public SAMLAddAttributeConsumingServiceHandler()Constructor.
-
-
Method Details
-
setMetadataContextLookupStrategy
public void setMetadataContextLookupStrategy(@Nonnull Function<MessageContext, SAMLMetadataContext> strategy) Set the strategy to locate theSAMLMetadataContextfrom theMessageContext.- Parameters:
strategy- lookup strategy
-
setIndexLookupStrategy
Set the strategy to locate theAttributeConsumingServiceindex from theMessageContext.- Parameters:
strategy- lookup strategy
-
doPreInvoke
protected boolean doPreInvoke(@Nonnull MessageContext messageContext) throws MessageHandlerException Called prior to execution, handlers may override this method to perform pre-processing for a request.The default impl applies the
Predicateset via theAbstractMessageHandler.setActivationCondition(Predicate).If false is returned, execution will not proceed.
Subclasses which override this method should generally invoke the super version of this method first, so that the activation condition will be applied up front, and immediately return false if the super version returns false. This avoids unnecessary execution of the remaining pre-invocation code if the handler ultimately will not execute.
- Overrides:
doPreInvokein classAbstractMessageHandler- Parameters:
messageContext- the message context on which to invoke the handler- Returns:
- true iff execution should proceed
- Throws:
MessageHandlerException- if there is a problem executing the handler pre-routine
-
doInvoke
Performs the handler logic.- Specified by:
doInvokein classAbstractMessageHandler- Parameters:
messageContext- the message context on which to invoke the handler- Throws:
MessageHandlerException- if there is an error invoking the handler on the message context
-
attributeConsumingServiceFromRequestedAttributes
@Nonnull private AttributeConsumingService attributeConsumingServiceFromRequestedAttributes() throws MessageHandlerExceptionGenerate anAttributeConsumingServicefrom theRequestedAttributes.- Returns:
- a suitable AttributeConsumingService
- Throws:
MessageHandlerException- when the cloning failed
-
getRequestedAttributes
@Nullable protected Collection<RequestedAttribute> getRequestedAttributes(@Nonnull MessageContext messageContext, @Nonnull AuthnRequest authn) Grab theRequestedAttribute(if any) from theAuthnRequest.- Parameters:
messageContext- current message contextauthn- the request to interrogate- Returns:
- null or the list
-