Package org.opensaml.saml.common.binding.security.impl

# Class ReceivedEndpointSecurityHandler

java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
org.opensaml.messaging.handler.AbstractMessageHandler
org.opensaml.messaging.handler.AbstractHttpServletRequestMessageHandler
org.opensaml.saml.common.binding.security.impl.ReceivedEndpointSecurityHandler

All Implemented Interfaces:
  `Component`, `DestructableComponent`, `InitializableComponent`, `MessageHandler`

public class ReceivedEndpointSecurityHandler extends AbstractHttpServletRequestMessageHandler
Message handler which checks the validity of the SAML protocol message receiver endpoint against requirements indicated in the message.

## Field Summary

Fields
Modifier and Type
Field
Description
`private org.slf4j.Logger`
`log`
Logger.
`private URIComparator`
`uriComparator`
The URI comparator to use in performing the validation.

## Constructor Summary

Constructors
Constructor
Description
`ReceivedEndpointSecurityHandler()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`checkEndpointURI(MessageContext messageContext, URIComparator comparator)`
Check the validity of the SAML protocol message receiver endpoint against requirements indicated in the message.
`protected boolean`
`compareEndpointURIs(String messageDestination, String receiverEndpoint, URIComparator comparator)`
Compare the message endpoint URI's specified.
`protected void`
`doInvoke(MessageContext messageContext)`
Performs the handler logic.
`URIComparator`
`getURIComparator()`
Get the URI comparator instance to use.
`void`
`setURIComparator(URIComparator comparator)`
Set the URI comparator instance to use.

### Methods inherited from class org.opensaml.messaging.handler.AbstractHttpServletRequestMessageHandler

`doInitialize, getHttpServletRequest, getHttpServletRequestSupplier, isCheckDuringInit, setCheckDuringInit, setHttpServletRequestSupplier`

### Methods inherited from class org.opensaml.messaging.handler.AbstractMessageHandler

`doPostInvoke, doPostInvoke, doPreInvoke, getActivationCondition, getLogPrefix, invoke, isPreInvokeCalled, setActivationCondition`

### Methods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent

`checkComponentActive, checkSetterPreconditions, destroy, doDestroy, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, 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.shared.component.InitializableComponent

`initialize, isInitialized`

## Field Details

### log

@Nonnull private org.slf4j.Logger log
Logger.

### uriComparator

@Nonnull private URIComparator uriComparator
The URI comparator to use in performing the validation.

## Constructor Details

### ReceivedEndpointSecurityHandler

public ReceivedEndpointSecurityHandler()
Constructor.

## Method Details

### getURIComparator

@Nonnull public URIComparator getURIComparator()
Get the URI comparator instance to use.

Returns:
  the uriComparator.

### setURIComparator

public void setURIComparator(@Nonnull URIComparator comparator)
Set the URI comparator instance to use.

Parameters:
  `comparator` - the new URI comparator to use

### doInvoke

protected void doInvoke(@Nonnull MessageContext messageContext) throws MessageHandlerException
Performs the handler logic.

Specified by:
  `doInvoke` in class `AbstractMessageHandler`
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

### compareEndpointURIs

protected boolean compareEndpointURIs(@Nonnull @NotEmpty String messageDestination, @Nullable String receiverEndpoint, @Nonnull URIComparator comparator) throws URIException
Compare the message endpoint URI's specified.

The comparison is performed using the specified instance of `URIComparator`.

Parameters:
  `messageDestination` - the intended message destination endpoint URI
  `receiverEndpoint` - the endpoint URI at which the message was received
  `comparator` - the comparator instance to use
Returns:
  true if the endpoints are equivalent, false otherwise
Throws:
  `URIException` - if one of the URI's to evaluate is invalid

### checkEndpointURI

protected void checkEndpointURI(@Nonnull MessageContext messageContext, @Nonnull URIComparator comparator) throws MessageHandlerException
Check the validity of the SAML protocol message receiver endpoint against requirements indicated in the message.

Parameters:
  `messageContext` - current message context
  `comparator` - the URI comparator instance to use, if null an internal default will be used
Throws:
  `MessageHandlerException` - thrown if the message was received at an endpoint consistent with message requirements, or if there is a problem decoding and processing the message Destination or receiver endpoint information