Package net.shibboleth.idp.saml.saml1.profile.config.impl

# Class BrowserSSOProfileConfiguration

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
net.shibboleth.idp.saml.profile.config.impl.AbstractSAMLProfileConfiguration
net.shibboleth.idp.saml.saml1.profile.config.impl.AbstractSAML1ArtifactAwareProfileConfiguration
net.shibboleth.idp.saml.saml1.profile.config.impl.AbstractSAML1AssertionProducingProfileConfiguration
net.shibboleth.idp.saml.saml1.profile.config.impl.BrowserSSOProfileConfiguration

All Implemented Interfaces:
  `AuthenticationProfileConfiguration`, `InterceptorAwareProfileConfiguration`, `BrowserSSOProfileConfiguration`, `SAMLProfileConfiguration`, `AttributeResolvingProfileConfiguration`, `ConditionalProfileConfiguration`, `ProfileConfiguration`, `SAMLArtifactAwareProfileConfiguration`, `SAMLAssertionProducingProfileConfiguration`, `SAMLProfileConfiguration`, `BrowserSSOProfileConfiguration`, `Component`, `DestructableComponent`, `IdentifiableComponent`, `IdentifiedComponent`, `InitializableComponent`

public class BrowserSSOProfileConfiguration extends AbstractSAML1AssertionProducingProfileConfiguration implements BrowserSSOProfileConfiguration, BrowserSSOProfileConfiguration, AuthenticationProfileConfiguration
Configuration for SAML 1 Browser SSO profile requests.

## Field Summary

Fields
Modifier and Type
Field
Description
`private Function<ProfileRequestContext,String>`
`attributeRecipientGroupIDLookupStrategy`
Lookup strategy for attribute recipient group ID.
`private Function<ProfileRequestContext,Set<String>>`
`authenticationFlowsLookupStrategy`
Lookup function to supply authentication flows.
`private Function<ProfileRequestContext,Collection<Principal>>`
`defaultAuthenticationMethodsLookupStrategy`
Lookup function to supply default authentication methods.
`private Predicate<ProfileRequestContext>`
`forceAuthnPredicate`
Whether to mandate forced authentication for the request.
`private Predicate<ProfileRequestContext>`
`includeAttributeStatementPredicate`
Whether responses to the authentication request should include an attribute statement.
`private Function<ProfileRequestContext,Duration>`
`maxAgeLookupStrategy`
Lookup function for max-age setting.
`private Function<ProfileRequestContext,Collection<String>>`
`nameIDFormatPrecedenceLookupStrategy`
Lookup function to supply NameIdentifier formats.
`private Function<ProfileRequestContext,Collection<String>>`
`postAuthenticationFlowsLookupStrategy`
Lookup function to supply post authentication flows.
`static final String`
`PROFILE_COUNTER`
Name of profile counter.
`private Function<ProfileRequestContext,Integer>`
`proxyCountLookupStrategy`
Lookup function to supply proxyCount property.
`private Function<ProfileRequestContext,Collection<String>>`
`requestedIdPAttributeNamesLookupStrategy`
Lookup strategy for requested IdP attribute names to pass into resolver.
`private Predicate<ProfileRequestContext>`
`resolveAttributesPredicate`
Whether attributes should be resolved in the course of the profile.

### Fields inherited from interface net.shibboleth.saml.saml1.profile.config.BrowserSSOProfileConfiguration

`PROFILE_ID`

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

`DEFAULT_DISALLOWED_FEATURES`

### Fields inherited from interface net.shibboleth.saml.profile.config.SAMLAssertionProducingProfileConfiguration

`DEFAULT_ASSERTION_LIFETIME`

## Constructor Summary

Constructors
Modifier
Constructor
Description
``
`BrowserSSOProfileConfiguration()`
Constructor.
`protected`
`BrowserSSOProfileConfiguration(String profileId)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`String`
`getAttributeRecipientGroupID(ProfileRequestContext profileRequestContext)`
`Set<String>`
`getAuthenticationFlows(ProfileRequestContext profileRequestContext)`
Deprecated, for removal: This API element is subject to removal in a future version.
`List<Principal>`
`getDefaultAuthenticationMethods(ProfileRequestContext profileRequestContext)`
Get the default authentication methods to use, expressed as custom principals.
`Duration`
`getMaxAge(ProfileRequestContext profileRequestContext)`
Get duration since an `AuthenticationResult` was created that allows it to be reused for this request.
`List<String>`
`getNameIDFormatPrecedence(ProfileRequestContext profileRequestContext)`
Get the name identifier formats to use.
`List<String>`
`getPostAuthenticationFlows(ProfileRequestContext profileRequestContext)`
Get an ordered list of post-authentication interceptor flows to run for this profile.
`Integer`
`getProxyCount(ProfileRequestContext profileRequestContext)`
Gets the maximum number of times an assertion may be proxied outbound and/or the maximum number of hops between the relying party and a proxied authentication authority inbound.
`Collection<String>`
`getRequestedIdPAttributeNames(ProfileRequestContext profileRequestContext)`
`boolean`
`isForceAuthn(ProfileRequestContext profileRequestContext)`
Get whether the authentication process should include a proof of user presence.
`boolean`
`isIncludeAttributeStatement(ProfileRequestContext profileRequestContext)`
Get whether responses to the authentication request should include an attribute statement.
`boolean`
`isResolveAttributes(ProfileRequestContext profileRequestContext)`
`void`
`setAttributeRecipientGroupID(String groupID)`
Set the group of services for which attributes are being resolved.
`void`
`setAttributeRecipientGroupIDLookupStrategy(Function<ProfileRequestContext,String> strategy)`
Set the lookup strategy for the group of services for which attributes are being resolved.
`void`
`setAuthenticationFlows(Collection<String> flows)`
Deprecated, for removal: This API element is subject to removal in a future version.
`void`
`setAuthenticationFlowsLookupStrategy(Function<ProfileRequestContext,Set<String>> strategy)`
Deprecated, for removal: This API element is subject to removal in a future version.
(since="5.2.0", forRemoval=true)
`void`
`setDefaultAuthenticationMethods(Collection<Principal> methods)`
Set the default authentication methods to use, expressed as custom principals.
`void`
`setDefaultAuthenticationMethodsLookupStrategy(Function<ProfileRequestContext,Collection<Principal>> strategy)`
Set a lookup strategy for the `getDefaultAuthenticationMethods(ProfileRequestContext)` method.
`void`
`setForceAuthn(boolean flag)`
Set whether a fresh user presence proof should be required for this request.
`void`
`setForceAuthnPredicate(Predicate<ProfileRequestContext> condition)`
Set a condition to determine whether a fresh user presence proof should be required for this request.
`void`
`setIncludeAttributeStatement(boolean flag)`
Set whether responses to the authentication request should include an attribute statement.
`void`
`setIncludeAttributeStatementPredicate(Predicate<ProfileRequestContext> condition)`
Set a condition to determine whether responses to the authentication request should include an attribute statement.
`void`
`setMaxAge(Duration maxAge)`
Sets allowed duration between an `AuthenticationResult` creation and its reuse for this request.
`void`
`setMaxAgeLookupStrategy(Function<ProfileRequestContext,Duration> strategy)`
Sets lookup strategy for the allowed duration between an `AuthenticationResult` creation and its reuse for this request.
`void`
`setNameIDFormatPrecedence(Collection<String> formats)`
Set the name identifier formats to use.
`void`
`setNameIDFormatPrecedenceLookupStrategy(Function<ProfileRequestContext,Collection<String>> strategy)`
Set a lookup strategy for the name identifier formats to use.
`void`
`setPostAuthenticationFlows(Collection<String> flows)`
Set the ordered collection of post-authentication interceptor flows to enable.
`void`
`setPostAuthenticationFlowsLookupStrategy(Function<ProfileRequestContext,Collection<String>> strategy)`
Set a lookup strategy for the post-authentication interceptor flows to enable.
`void`
`setProxyCount(Integer count)`
Sets the maximum number of times an assertion may be proxied outbound and/or the maximum number of hops between the relying party and a proxied authentication authority inbound.
`void`
`setProxyCountLookupStrategy(Function<ProfileRequestContext,Integer> strategy)`
Set a lookup strategy for the maximum number of times an assertion may be proxied outbound and/or the maximum number of hops between the relying party and a proxied authentication authority inbound.
`void`
`setRequestedIdPAttributeNames(Collection<String> names)`
Set `IdPAttribute` names to resolve (if resolving attributes).
`void`
`setRequestedIdPAttributeNamesLookupStrategy(Function<ProfileRequestContext,Collection<String>> strategy)`
Lookup strategy for `IdPAttribute` names to resolve (if resolving attributes).
`void`
`setResolveAttributes(boolean flag)`
Set whether attributes should be resolved during the profile.
`void`
`setResolveAttributesPredicate(Predicate<ProfileRequestContext> condition)`
Set a condition to determine whether attributes should be resolved during the profile.

### Methods inherited from class net.shibboleth.idp.saml.saml1.profile.config.impl.AbstractSAML1AssertionProducingProfileConfiguration

`getAssertionAudiences, getAssertionLifetime, isIncludeConditionsNotBefore, isSignAssertions, setAdditionalAudiencesForAssertion, setAdditionalAudiencesForAssertionLookupStrategy, setAssertionAudiences, setAssertionAudiencesLookupStrategy, setAssertionLifetime, setAssertionLifetimeLookupStrategy, setIncludeConditionsNotBefore, setIncludeConditionsNotBeforePredicate, setSignAssertions, setSignAssertionsPredicate`

### Methods inherited from class net.shibboleth.idp.saml.saml1.profile.config.impl.AbstractSAML1ArtifactAwareProfileConfiguration

`getArtifactConfiguration, setArtifactConfiguration, setArtifactConfigurationLookupStrategy`

### Methods inherited from class net.shibboleth.idp.saml.profile.config.impl.AbstractSAMLProfileConfiguration

`getMessageHandler, isSignRequests, isSignResponses, setMessageDecorator, setMessageHandler, setMessageHandlerLookupStrategy, setSignRequests, setSignRequestsPredicate, setSignResponses, setSignResponsesPredicate`

### Methods inherited from class net.shibboleth.idp.profile.config.AbstractInterceptorAwareProfileConfiguration

`getInboundInterceptorFlows, getOutboundInterceptorFlows, setInboundInterceptorFlows, setInboundInterceptorFlowsLookupStrategy, setOutboundInterceptorFlows, setOutboundInterceptorFlowsLookupStrategy`

### 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.idp.authn.config.AuthenticationProfileConfiguration

`isLocal`

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

`getId`

### Methods inherited from interface net.shibboleth.idp.profile.config.InterceptorAwareProfileConfiguration

`getInboundInterceptorFlows, getOutboundInterceptorFlows`

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

`getDisallowedFeatures, getSecurityConfiguration, isFeatureDisallowed`

### Methods inherited from interface net.shibboleth.saml.profile.config.SAMLAssertionProducingProfileConfiguration

`getAssertionAudiences, getAssertionLifetime, isIncludeConditionsNotBefore, isSignAssertions`

### Methods inherited from interface net.shibboleth.saml.profile.config.SAMLProfileConfiguration

`getMessageHandler, isSignRequests, isSignResponses`

## Field Details

### PROFILE_COUNTER

@Nonnull @NotEmpty public static final String PROFILE_COUNTER
Name of profile counter.

See Also:
  - Constant Field Values

### resolveAttributesPredicate

@Nonnull private Predicate<ProfileRequestContext> resolveAttributesPredicate
Whether attributes should be resolved in the course of the profile.

### requestedIdPAttributeNamesLookupStrategy

@Nonnull private Function<ProfileRequestContext,Collection<String>> requestedIdPAttributeNamesLookupStrategy
Lookup strategy for requested IdP attribute names to pass into resolver.

### attributeRecipientGroupIDLookupStrategy

@Nonnull private Function<ProfileRequestContext,String> attributeRecipientGroupIDLookupStrategy
Lookup strategy for attribute recipient group ID.

### includeAttributeStatementPredicate

@Nonnull private Predicate<ProfileRequestContext> includeAttributeStatementPredicate
Whether responses to the authentication request should include an attribute statement.

### forceAuthnPredicate

@Nonnull private Predicate<ProfileRequestContext> forceAuthnPredicate
Whether to mandate forced authentication for the request.

### maxAgeLookupStrategy

@Nonnull private Function<ProfileRequestContext,Duration> maxAgeLookupStrategy
Lookup function for max-age setting.

### defaultAuthenticationMethodsLookupStrategy

@Nonnull private Function<ProfileRequestContext,Collection<Principal>> defaultAuthenticationMethodsLookupStrategy
Lookup function to supply default authentication methods.

### authenticationFlowsLookupStrategy

@Nonnull private Function<ProfileRequestContext,Set<String>> authenticationFlowsLookupStrategy
Lookup function to supply authentication flows.

### postAuthenticationFlowsLookupStrategy

@Nonnull private Function<ProfileRequestContext,Collection<String>> postAuthenticationFlowsLookupStrategy
Lookup function to supply post authentication flows.

### nameIDFormatPrecedenceLookupStrategy

@Nonnull private Function<ProfileRequestContext,Collection<String>> nameIDFormatPrecedenceLookupStrategy
Lookup function to supply NameIdentifier formats.

### proxyCountLookupStrategy

@Nonnull private Function<ProfileRequestContext,Integer> proxyCountLookupStrategy
Lookup function to supply proxyCount property.

## Constructor Details

### BrowserSSOProfileConfiguration

public BrowserSSOProfileConfiguration()
Constructor.

### BrowserSSOProfileConfiguration

protected BrowserSSOProfileConfiguration(@Nonnull @NotEmpty String profileId)
Constructor.

Parameters:
  `profileId` - unique ID for this profile

## Method Details

### isResolveAttributes

public boolean isResolveAttributes(@Nullable ProfileRequestContext profileRequestContext)

Specified by:
  `isResolveAttributes` in interface `AttributeResolvingProfileConfiguration`

### setResolveAttributes

public void setResolveAttributes(boolean flag)
Set whether attributes should be resolved during the profile.

Parameters:
  `flag` - flag to set

### setResolveAttributesPredicate

public void setResolveAttributesPredicate(@Nonnull Predicate<ProfileRequestContext> condition)
Set a condition to determine whether attributes should be resolved during the profile.

Parameters:
  `condition` - condition to set

### getRequestedIdPAttributeNames

@Nonnull @Unmodifiable @NotLive public Collection<String> getRequestedIdPAttributeNames(@Nullable ProfileRequestContext profileRequestContext)

Specified by:
  `getRequestedIdPAttributeNames` in interface `AttributeResolvingProfileConfiguration`

### setRequestedIdPAttributeNames

public void setRequestedIdPAttributeNames(@Nullable Collection<String> names)
Set `IdPAttribute` names to resolve (if resolving attributes).

Parameters:
  `names` - `IdPAttribute` names to resolve
Since:
  5.2.0

### setRequestedIdPAttributeNamesLookupStrategy

public void setRequestedIdPAttributeNamesLookupStrategy(@Nonnull Function<ProfileRequestContext,Collection<String>> strategy)
Lookup strategy for `IdPAttribute` names to resolve (if resolving attributes).

Parameters:
  `strategy` - lookup strategy
Since:
  5.2.0

### getAttributeRecipientGroupID

@Nullable public String getAttributeRecipientGroupID(@Nullable ProfileRequestContext profileRequestContext)

Specified by:
  `getAttributeRecipientGroupID` in interface `AttributeResolvingProfileConfiguration`

### setAttributeRecipientGroupID

public void setAttributeRecipientGroupID(@Nullable String groupID)
Set the group of services for which attributes are being resolved.

Parameters:
  `groupID` - group identifier
Since:
  5.2.0

### setAttributeRecipientGroupIDLookupStrategy

public void setAttributeRecipientGroupIDLookupStrategy(@Nonnull Function<ProfileRequestContext,String> strategy)
Set the lookup strategy for the group of services for which attributes are being resolved.

Parameters:
  `strategy` - lookup strategy
Since:
  5.2.0

### isIncludeAttributeStatement

public boolean isIncludeAttributeStatement(@Nullable ProfileRequestContext profileRequestContext)
Get whether responses to the authentication request should include an attribute statement.

Default is true

Specified by:
  `isIncludeAttributeStatement` in interface `BrowserSSOProfileConfiguration`
Parameters:
  `profileRequestContext` - current profile request context
Returns:
  whether responses to the authentication request should include an attribute statement

### setIncludeAttributeStatement

public void setIncludeAttributeStatement(boolean flag)
Set whether responses to the authentication request should include an attribute statement.

Parameters:
  `flag` - flag to set

### setIncludeAttributeStatementPredicate

public void setIncludeAttributeStatementPredicate(@Nonnull Predicate<ProfileRequestContext> condition)
Set a condition to determine whether responses to the authentication request should include an attribute statement.

Parameters:
  `condition` - condition to set

### isForceAuthn

public boolean isForceAuthn(@Nullable ProfileRequestContext profileRequestContext)
Get whether the authentication process should include a proof of user presence.

Specified by:
  `isForceAuthn` in interface `AuthenticationProfileConfiguration`
Parameters:
  `profileRequestContext` - current profile request context
Returns:
  true iff authentication should require user presence

### setForceAuthn

public void setForceAuthn(boolean flag)
Set whether a fresh user presence proof should be required for this request.

Parameters:
  `flag` - flag to set

### setForceAuthnPredicate

public void setForceAuthnPredicate(@Nonnull Predicate<ProfileRequestContext> condition)
Set a condition to determine whether a fresh user presence proof should be required for this request.

Parameters:
  `condition` - condition to set

### getMaxAge

@ConfigurationSetting(name="maxAge") @Nullable public Duration getMaxAge(@Nullable ProfileRequestContext profileRequestContext)
Get duration since an `AuthenticationResult` was created that allows it to be reused for this request.

If null, no constraint is applied.

Specified by:
  `getMaxAge` in interface `AuthenticationProfileConfiguration`
Parameters:
  `profileRequestContext` - profile request context
Returns:
  allowable duration

### setMaxAge

public void setMaxAge(@Nullable Duration maxAge)
Sets allowed duration between an `AuthenticationResult` creation and its reuse for this request.

Parameters:
  `maxAge` - allowed duration
Since:
  5.2.0

### setMaxAgeLookupStrategy

public void setMaxAgeLookupStrategy(@Nonnull Function<ProfileRequestContext,Duration> strategy)
Sets lookup strategy for the allowed duration between an `AuthenticationResult` creation and its reuse for this request.

Parameters:
  `strategy` - lookup strategy
Since:
  5.2.0

### getDefaultAuthenticationMethods

@Nonnull @NotLive @Unmodifiable public List<Principal> getDefaultAuthenticationMethods(@Nullable ProfileRequestContext profileRequestContext)
Get the default authentication methods to use, expressed as custom principals.

Specified by:
  `getDefaultAuthenticationMethods` in interface `AuthenticationProfileConfiguration`
Parameters:
  `profileRequestContext` - current profile request context
Returns:
  default authentication methods to use

### setDefaultAuthenticationMethods

public void setDefaultAuthenticationMethods(@Nullable Collection<Principal> methods)
Set the default authentication methods to use, expressed as custom principals.

Parameters:
  `methods` - default authentication methods to use

### setDefaultAuthenticationMethodsLookupStrategy

public void setDefaultAuthenticationMethodsLookupStrategy(@Nonnull Function<ProfileRequestContext,Collection<Principal>> strategy)
Set a lookup strategy for the `getDefaultAuthenticationMethods(ProfileRequestContext)` method.

Parameters:
  `strategy` - lookup strategy
Since:
  3.3.0

### getAuthenticationFlows

@Deprecated(since="5.2.0", forRemoval=true) @Nonnull @NotLive @Unmodifiable public Set<String> getAuthenticationFlows(@Nullable ProfileRequestContext profileRequestContext)
Deprecated, for removal: This API element is subject to removal in a future version.
Get the allowable authentication flows for this profile.

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

Specified by:
  `getAuthenticationFlows` in interface `AuthenticationProfileConfiguration`
Parameters:
  `profileRequestContext` - current profile request context
Returns:
  a set of authentication flow IDs to allow

### setAuthenticationFlows

@Deprecated(since="5.2.0", forRemoval=true) public void setAuthenticationFlows(@Nullable Collection<String> flows)
Deprecated, for removal: This API element is subject to removal in a future version.
Set the authentication flows to use.

Parameters:
  `flows` - flow identifiers to use

### setAuthenticationFlowsLookupStrategy

@Deprecated(since="5.2.0", forRemoval=true) public void setAuthenticationFlowsLookupStrategy(@Nonnull Function<ProfileRequestContext,Set<String>> strategy)
Deprecated, for removal: This API element is subject to removal in a future version.
(since="5.2.0", forRemoval=true)
Set a lookup strategy for the authentication flows to use.

Parameters:
  `strategy` - lookup strategy
Since:
  3.3.0

### getPostAuthenticationFlows

@Nonnull @NotLive @Unmodifiable public List<String> getPostAuthenticationFlows(@Nullable ProfileRequestContext profileRequestContext)
Get an ordered list of post-authentication interceptor flows to run for this profile.

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

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

### setPostAuthenticationFlows

public void setPostAuthenticationFlows(@Nullable Collection<String> flows)
Set the ordered collection of post-authentication interceptor flows to enable.

Parameters:
  `flows` - flow identifiers to enable

### setPostAuthenticationFlowsLookupStrategy

public void setPostAuthenticationFlowsLookupStrategy(@Nonnull Function<ProfileRequestContext,Collection<String>> strategy)
Set a lookup strategy for the post-authentication interceptor flows to enable.

Parameters:
  `strategy` - lookup strategy
Since:
  3.3.0

### getNameIDFormatPrecedence

@Nonnull @NotLive @Unmodifiable public List<String> getNameIDFormatPrecedence(@Nullable ProfileRequestContext profileRequestContext)
Get the name identifier formats to use.

Specified by:
  `getNameIDFormatPrecedence` in interface `BrowserSSOProfileConfiguration`
Parameters:
  `profileRequestContext` - profile request context
Returns:
  the formats to use

### setNameIDFormatPrecedence

public void setNameIDFormatPrecedence(@Nonnull Collection<String> formats)
Set the name identifier formats to use.

Parameters:
  `formats` - name identifier formats to use

### setNameIDFormatPrecedenceLookupStrategy

public void setNameIDFormatPrecedenceLookupStrategy(@Nonnull Function<ProfileRequestContext,Collection<String>> strategy)
Set a lookup strategy for the name identifier formats to use.

Parameters:
  `strategy` - lookup strategy
Since:
  3.3.0

### getProxyCount

@Nullable public Integer getProxyCount(@Nullable ProfileRequestContext profileRequestContext)
Gets the maximum number of times an assertion may be proxied outbound and/or the maximum number of hops between the relying party and a proxied authentication authority inbound.

Specified by:
  `getProxyCount` in interface `AuthenticationProfileConfiguration`
Parameters:
  `profileRequestContext` - current profile request context
Returns:
  maximum number of times an assertion or authentication may be proxied

### setProxyCount

public void setProxyCount(@Nullable @NonNegative Integer count)
Sets the maximum number of times an assertion may be proxied outbound and/or the maximum number of hops between the relying party and a proxied authentication authority inbound.

Parameters:
  `count` - proxy count
Since:
  4.0.0

### setProxyCountLookupStrategy

public void setProxyCountLookupStrategy(@Nonnull Function<ProfileRequestContext,Integer> strategy)
Set a lookup strategy for the maximum number of times an assertion may be proxied outbound and/or the maximum number of hops between the relying party and a proxied authentication authority inbound.

Parameters:
  `strategy` - lookup strategy
Since:
  4.0.0