Class SAMLAddAttributeConsumingServiceHandler
- java.lang.Object
-
- net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
-
- org.opensaml.messaging.handler.AbstractMessageHandler
-
- org.opensaml.saml.common.binding.impl.SAMLAddAttributeConsumingServiceHandler
-
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,MessageHandler
public class SAMLAddAttributeConsumingServiceHandler extends AbstractMessageHandler
SAMLMessageHandlerthat attaches anAttributeConsumingServiceContextto theSAMLMetadataContextbased on the content of anAuthnRequestin the message context.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private classSAMLAddAttributeConsumingServiceHandler.AuthnRequestLookupDefault lookup function that find a SAML 2AuthnRequest.
-
Field Summary
Fields Modifier and Type Field Description private Function<MessageContext,AuthnRequest>authnRequestLookupStrategyLookup strategy for anAuthnRequestindex.private IntegerindexAttributeConsumingServiceindex - if specified.private org.slf4j.LoggerlogLogger.private Function<MessageContext,SAMLMetadataContext>metadataContextLookupStrategyLookup strategy forSAMLMetadataContext.private List<RequestedAttribute>requestedAttributesRequestedAttributelist - if specified.
-
Constructor Summary
Constructors Constructor Description SAMLAddAttributeConsumingServiceHandler()Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private AttributeConsumingServiceattributeConsumingServiceFromRequestedAttributes()Generate 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.private List<RequestedAttribute>getRequestedAttributes(AuthnRequest authn)Grab theRequestedAttribute(if any) from theAuthnRequest.voidsetIndexLookupStrategy(Function<MessageContext,AuthnRequest> strategy)Set the strategy to locate theAttributeConsumingServiceindex from theMessageContext.voidsetMetadataContextLookupStrategy(Function<MessageContext,SAMLMetadataContext> strategy)Set the strategy to locate theSAMLMetadataContextfrom theMessageContext.-
Methods inherited from class org.opensaml.messaging.handler.AbstractMessageHandler
doPostInvoke, doPostInvoke, getActivationCondition, getLogPrefix, invoke, setActivationCondition
-
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, doDestroy, doInitialize, 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.InitializableComponent
initialize, isInitialized
-
-
-
-
Field Detail
-
log
@Nonnull private final org.slf4j.Logger log
Logger.
-
metadataContextLookupStrategy
@Nonnull private Function<MessageContext,SAMLMetadataContext> metadataContextLookupStrategy
Lookup strategy forSAMLMetadataContext.
-
authnRequestLookupStrategy
@Nonnull private Function<MessageContext,AuthnRequest> authnRequestLookupStrategy
Lookup strategy for anAuthnRequestindex.
-
index
@Nullable private Integer index
AttributeConsumingServiceindex - if specified.
-
requestedAttributes
@Nullable private List<RequestedAttribute> requestedAttributes
RequestedAttributelist - if specified.
-
-
Method Detail
-
setMetadataContextLookupStrategy
public void setMetadataContextLookupStrategy(@Nonnull Function<MessageContext,SAMLMetadataContext> strategy)Set the strategy to locate theSAMLMetadataContextfrom theMessageContext.- Parameters:
strategy- lookup strategy
-
setIndexLookupStrategy
public void setIndexLookupStrategy(@Nullable Function<MessageContext,AuthnRequest> strategy)Set the strategy to locate theAttributeConsumingServiceindex from theMessageContext.- Parameters:
strategy- lookup strategy
-
doPreInvoke
protected boolean doPreInvoke(@Nonnull MessageContext messageContext) throws MessageHandlerExceptionCalled 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
protected void doInvoke(@Nonnull MessageContext messageContext) throws MessageHandlerExceptionPerforms 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
private AttributeConsumingService attributeConsumingServiceFromRequestedAttributes() throws MessageHandlerException
Generate anAttributeConsumingServicefrom theRequestedAttributes.- Returns:
- a suitable AttributeConsumingService
- Throws:
MessageHandlerException- when the cloning failed
-
getRequestedAttributes
private List<RequestedAttribute> getRequestedAttributes(AuthnRequest authn)
Grab theRequestedAttribute(if any) from theAuthnRequest.- Parameters:
authn- the request to interrogate- Returns:
- null or the list.
-
-