Package net.shibboleth.idp.profile.config

# Class AbstractInterceptorAwareProfileConfiguration

java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
net.shibboleth.shared.component.AbstractIdentifiedInitializableComponent
net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent
net.shibboleth.profile.config.AbstractProfileConfiguration
net.shibboleth.profile.config.AbstractConditionalProfileConfiguration
net.shibboleth.idp.profile.config.AbstractInterceptorAwareProfileConfiguration

All Implemented Interfaces:
  `InterceptorAwareProfileConfiguration`, `ConditionalProfileConfiguration`, `ProfileConfiguration`, `Component`, `DestructableComponent`, `IdentifiableComponent`, `IdentifiedComponent`, `InitializableComponent`

Direct Known Subclasses:
  `AbstractProtocolConfiguration`, `AbstractSAMLProfileConfiguration`, `BasicAdministrativeFlowDescriptor`, `MockAuthenticationProfileConfiguration`, `MockProfileConfiguration`

public abstract class AbstractInterceptorAwareProfileConfiguration extends AbstractConditionalProfileConfiguration implements InterceptorAwareProfileConfiguration
Base class for `InterceptorAwareProfileConfiguration` implementations.

Since:
  5.0.0

## Field Summary

Fields
Modifier and Type
Field
Description
`private Function<ProfileRequestContext,List<String>>`
`inboundFlowsLookupStrategy`
Lookup function to supply inboundFlows property.
`private Function<ProfileRequestContext,List<String>>`
`outboundFlowsLookupStrategy`
Lookup function to supply #outboundFlows property.

### Fields inherited from interface net.shibboleth.profile.config.ProfileConfiguration

`DEFAULT_DISALLOWED_FEATURES`

## Constructor Summary

Constructors
Constructor
Description
`AbstractInterceptorAwareProfileConfiguration(String id)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`List<String>`
`getInboundInterceptorFlows(ProfileRequestContext profileRequestContext)`
Get an ordered list of interceptor flows to run for this profile after an inbound message is decoded.
`List<String>`
`getOutboundInterceptorFlows(ProfileRequestContext profileRequestContext)`
Get an ordered list of interceptor flows to run for this profile before a final outbound message is generated.
`void`
`setInboundInterceptorFlows(Collection<String> flows)`
Set the ordered collection of inbound interceptor flows to enable.
`void`
`setInboundInterceptorFlowsLookupStrategy(Function<ProfileRequestContext,List<String>> strategy)`
Set a lookup strategy for the inbound interceptor flows to enable.
`void`
`setOutboundInterceptorFlows(Collection<String> flows)`
Set the ordered collection of outbound interceptor flows to enable.
`void`
`setOutboundInterceptorFlowsLookupStrategy(Function<ProfileRequestContext,List<String>> strategy)`
Set a lookup strategy for the outbound interceptor flows to enable.

### Methods inherited from class net.shibboleth.profile.config.AbstractConditionalProfileConfiguration

`getActivationCondition, setActivationCondition`

### Methods inherited from class net.shibboleth.profile.config.AbstractProfileConfiguration

`equals, getDisallowedFeatures, getSecurityConfiguration, hashCode, isFeatureDisallowed, setDisallowedFeatures, setDisallowedFeaturesLookupStrategy, setSecurityConfiguration, setSecurityConfigurationLookupStrategy`

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

`setId`

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

`doInitialize, ensureId, getId, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException`

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

`checkComponentActive, checkSetterPreconditions, destroy, doDestroy, initialize, isDestroyed, isInitialized`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface net.shibboleth.shared.component.IdentifiedComponent

`getId`

### Methods inherited from interface net.shibboleth.profile.config.ProfileConfiguration

`getDisallowedFeatures, getSecurityConfiguration, isFeatureDisallowed`

## Field Details

### inboundFlowsLookupStrategy

@Nonnull private Function<ProfileRequestContext,List<String>> inboundFlowsLookupStrategy
Lookup function to supply inboundFlows property.

### outboundFlowsLookupStrategy

@Nonnull private Function<ProfileRequestContext,List<String>> outboundFlowsLookupStrategy
Lookup function to supply #outboundFlows property.

## Constructor Details

### AbstractInterceptorAwareProfileConfiguration

public AbstractInterceptorAwareProfileConfiguration(@Nonnull @NotEmpty @ParameterName(name="id") String id)
Constructor.

Parameters:
  `id` - ID of the communication profile, never null or empty

## Method Details

### getInboundInterceptorFlows

@Nonnull @NotLive @Unmodifiable public List<String> getInboundInterceptorFlows(@Nullable ProfileRequestContext profileRequestContext)
Get an ordered list of interceptor flows to run for this profile after an inbound message is decoded.

The flow IDs returned MUST NOT contain the `ProfileInterceptorFlowDescriptor.FLOW_ID_PREFIX` prefix common to all interceptor flows.

Specified by:
  `getInboundInterceptorFlows` in interface `InterceptorAwareProfileConfiguration`
Parameters:
  `profileRequestContext` - current profile request context
Returns:
  a set of interceptor flow IDs to enable

### setInboundInterceptorFlows

public void setInboundInterceptorFlows(@Nullable Collection<String> flows)
Set the ordered collection of inbound interceptor flows to enable.

Parameters:
  `flows` - flow identifiers to enable

### setInboundInterceptorFlowsLookupStrategy

public void setInboundInterceptorFlowsLookupStrategy(@Nonnull Function<ProfileRequestContext,List<String>> strategy)
Set a lookup strategy for the inbound interceptor flows to enable.

Parameters:
  `strategy` - lookup strategy
Since:
  4.2.0

### getOutboundInterceptorFlows

@Nonnull @NotLive @Unmodifiable public List<String> getOutboundInterceptorFlows(@Nullable ProfileRequestContext profileRequestContext)
Get an ordered list of interceptor flows to run for this profile before a final outbound message is generated.

The flow IDs returned MUST NOT contain the `ProfileInterceptorFlowDescriptor.FLOW_ID_PREFIX` prefix common to all interceptor flows.

Specified by:
  `getOutboundInterceptorFlows` in interface `InterceptorAwareProfileConfiguration`
Parameters:
  `profileRequestContext` - current profile request context
Returns:
  a set of interceptor flow IDs to enable

### setOutboundInterceptorFlows

public void setOutboundInterceptorFlows(@Nullable Collection<String> flows)
Set the ordered collection of outbound interceptor flows to enable.

Parameters:
  `flows` - flow identifiers to enable

### setOutboundInterceptorFlowsLookupStrategy

public void setOutboundInterceptorFlowsLookupStrategy(@Nonnull Function<ProfileRequestContext,List<String>> strategy)
Set a lookup strategy for the outbound interceptor flows to enable.

Parameters:
  `strategy` - lookup strategy
Since:
  4.2.0