Package net.shibboleth.idp.profile.impl

# Class SelectProfileConfiguration

java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
org.opensaml.profile.action.AbstractProfileAction
org.opensaml.profile.action.AbstractConditionalProfileAction
net.shibboleth.idp.profile.AbstractProfileAction
net.shibboleth.idp.profile.impl.SelectProfileConfiguration

All Implemented Interfaces:
  `Component`, `DestructableComponent`, `InitializableComponent`, `ProfileAction`, `Aware`, `MessageSource`, `MessageSourceAware`, `Action`

public class SelectProfileConfiguration extends AbstractProfileAction
Action that selects the `ProfileConfiguration` for the given request and sets it in the looked-up `RelyingPartyContext`.

Event:
  `EventIds.PROCEED_EVENT_ID`, `IdPEventIds.INVALID_RELYING_PARTY_CTX`, `IdPEventIds.INVALID_RELYING_PARTY_CONFIG`, `IdPEventIds.INVALID_PROFILE_CONFIG`

## Field Summary

Fields
Modifier and Type
Field
Description
`private boolean`
`failIfMissing`
Fail if no profile configuration is found.
`private final org.slf4j.Logger`
`log`
Class logger.
`private String`
`profileId`
Profile ID to use if not derived from context tree.
`private Function<ProfileRequestContext,RelyingPartyContext>`
`relyingPartyContextLookupStrategy`
Strategy used to locate the `RelyingPartyContext` associated with a given `ProfileRequestContext`.
`private RelyingPartyContext`
`rpCtx`
The RelyingPartyContext to operate on.

## Constructor Summary

Constructors
Constructor
Description
`SelectProfileConfiguration()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doExecute(ProfileRequestContext profileRequestContext)`
`protected boolean`
`doPreExecute(ProfileRequestContext profileRequestContext)`
`void`
`setFailIfMissing(boolean flag)`
Set whether a missing profile configuration should result in an error event.
`void`
`setProfileId(String id)`
Set the profile identifier to use in selection.
`void`
`setRelyingPartyContextLookupStrategy(Function<ProfileRequestContext,RelyingPartyContext> strategy)`
Set the strategy used to locate the `RelyingPartyContext` associated with a given `ProfileRequestContext`.

### Methods inherited from class net.shibboleth.idp.profile.AbstractProfileAction

`doExecute, execute, getBean, getBean, getMessage, getMessage, getMessage, getParameter, getParameter, getProfileContextLookupStrategy, getRequestContext, getResult, setMessageSource, setProfileContextLookupStrategy`

### Methods inherited from class org.opensaml.profile.action.AbstractConditionalProfileAction

`getActivationCondition, setActivationCondition`

### Methods inherited from class org.opensaml.profile.action.AbstractProfileAction

`doPostExecute, doPostExecute, ensureHttpServletRequest, ensureHttpServletResponse, execute, getHttpServletRequest, getHttpServletRequestSupplier, getHttpServletResponse, getHttpServletResponseSupplier, getLogPrefix, isPreExecuteCalled, setHttpServletRequestSupplier, setHttpServletResponseSupplier`

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

`checkComponentActive, checkSetterPreconditions, destroy, doDestroy, doInitialize, 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 final org.slf4j.Logger log
Class logger.

### relyingPartyContextLookupStrategy

@Nonnull private Function<ProfileRequestContext,RelyingPartyContext> relyingPartyContextLookupStrategy
Strategy used to locate the `RelyingPartyContext` associated with a given `ProfileRequestContext`.

### profileId

@Nullable @NotEmpty private String profileId
Profile ID to use if not derived from context tree.

### rpCtx

@NonnullBeforeExec private RelyingPartyContext rpCtx
The RelyingPartyContext to operate on.

### failIfMissing

private boolean failIfMissing
Fail if no profile configuration is found.

## Constructor Details

### SelectProfileConfiguration

public SelectProfileConfiguration()
Constructor.

## Method Details

### setRelyingPartyContextLookupStrategy

public void setRelyingPartyContextLookupStrategy(@Nonnull Function<ProfileRequestContext,RelyingPartyContext> strategy)
Set the strategy used to locate the `RelyingPartyContext` associated with a given `ProfileRequestContext`.

Parameters:
  `strategy` - strategy used to locate the `RelyingPartyContext` associated with a given `ProfileRequestContext`

### setProfileId

public void setProfileId(@Nullable @NotEmpty String id)
Set the profile identifier to use in selection.

If not set, this defaults to using `ProfileRequestContext.getProfileId()`.

Parameters:
  `id` - profile ID to use
Since:
  4.2.0

### setFailIfMissing

public void setFailIfMissing(boolean flag)
Set whether a missing profile configuration should result in an error event.

Defaults to true.

Parameters:
  `flag` - flag to set
Since:
  4.2.0

### doPreExecute

protected boolean doPreExecute(@Nonnull ProfileRequestContext profileRequestContext)

Overrides:
  `doPreExecute` in class `AbstractConditionalProfileAction`

### doExecute

protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext)

Overrides:
  `doExecute` in class `AbstractProfileAction`