Class BasicAdministrativeFlowDescriptor
- All Implemented Interfaces:
AdministrativeFlowDescriptor
,AuthenticationProfileConfiguration
,AttributeResolvingProfileConfiguration
,ProfileConfiguration
,FlowDescriptor
,Component
,DestructableComponent
,IdentifiableComponent
,IdentifiedComponent
,InitializableComponent
- Direct Known Subclasses:
OneTimeAdministrativeFlowDescriptor
Administrative flows are essentially any feature intrinsic to the IdP itself and generally not exposed to external systems using security mechanisms that would involve the more traditional "relying party" machinery and security models. Examples include status reporting and service management features, or user self-service features.
- Since:
- 3.3.0
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
A wrapper class to construct logo objects for exposure byUIInfo
interface. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Predicate<ProfileRequestContext>
Whether user authentication is required.private Function<ProfileRequestContext,
Set<String>> Filters the usable authentication flows.private final XMLObjectBuilderFactory
Builder factory for XMLObjects needed in UIInfo emulation.private Function<ProfileRequestContext,
Collection<Principal>> Selects, and limits, the authentication flows to use for requests by supported principals.private Predicate<ProfileRequestContext>
Whether to mandate forced authentication for the request.private String
Logging ID.private Function<ProfileRequestContext,
String> Lookup strategy for access control policy to apply.private Function<ProfileRequestContext,
Collection<String>> Enables post-authentication interceptor flows.private PrincipalServiceManager
Access to principal services.private Function<ProfileRequestContext,
Integer> Lookup function to supply proxyCount property.private Predicate<ProfileRequestContext>
Whether attributes should be resolved in the course of the flow.private Function<ProfileRequestContext,
Collection<String>> Auhentication methods provided by delimited strings, for post-initialization override viaPrincipalServiceManager
.private Predicate<ProfileRequestContext>
Whether this flow supports non-browser clients.private final UIInfo
Expose user interface details.Fields inherited from class net.shibboleth.idp.profile.config.AbstractProfileConfiguration
DEFAULT_DISALLOWED_FEATURES
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
getAuthenticationFlows
(ProfileRequestContext profileRequestContext) Get the allowable authentication flows for this profile.getDefaultAuthenticationMethods
(ProfileRequestContext profileRequestContext) Get the default authentication methods to use, expressed as custom principals.getInboundInterceptorFlows
(ProfileRequestContext profileRequestContext) Get an ordered list of interceptor flows to run for this profile after an inbound message is decoded.Get a logging ID to use when auditing this profile.getOutboundInterceptorFlows
(ProfileRequestContext profileRequestContext) Get an ordered list of interceptor flows to run for this profile before a final outbound message is generated.getPolicyName
(ProfileRequestContext profileRequestContext) Get the access control policy for this flow.getPostAuthenticationFlows
(ProfileRequestContext profileRequestContext) Get an ordered list of post-authentication interceptor flows to run for this profile.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.getSecurityConfiguration
(ProfileRequestContext profileRequestContext) Get theSecurityConfiguration
to use with this profile.Get the user interface details for this profile.int
hashCode()
boolean
isAuthenticated
(ProfileRequestContext profileRequestContext) Get whether user authentication is required (default is false).boolean
isForceAuthn
(ProfileRequestContext profileRequestContext) Get whether the authentication process should include a proof of user presence.boolean
isNonBrowserSupported
(ProfileRequestContext profileRequestContext) Get whether this flow supports non-browser clients (default is true).boolean
isResolveAttributes
(ProfileRequestContext profileRequestContext) Get whether to resolve attributes.void
setAuthenticated
(boolean flag) Set whether user authentication is required (default is false).void
setAuthenticatedPredicate
(Predicate<ProfileRequestContext> condition) Set condition to determine whether user authentication is required (default is false).void
setAuthenticationFlows
(Collection<String> flows) Set the authentication flows to use.void
Set a lookup strategy for the authentication flows to use.void
Set the default authentication methods to use, expressed as custom principals.void
Set the authentication methods to use, expressed as strings that will be converted to principals during initialization.void
setDefaultAuthenticationMethodsByStringLookupStrategy
(Function<ProfileRequestContext, Collection<String>> strategy) Set a lookup strategy for the authentication methods to use, expressed as strings that will be converted to principals during initialization.void
setDefaultAuthenticationMethodsLookupStrategy
(Function<ProfileRequestContext, Collection<Principal>> strategy) Set a lookup strategy for the authentication methods to use, expressed as custom principals.void
setDescriptions
(Collection<LangBearingString> descriptions) Set theDescription
objects to expose viagetUIInfo()
via a utility class.void
setDisplayNames
(Collection<LangBearingString> displayNames) Set theDisplayName
objects to expose viagetUIInfo()
via a utility class.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
Set theInformationURL
objects to expose viagetUIInfo()
via a utility class.void
setLoggingId
(String id) Set a logging ID to use when auditing this profile.void
Set theLogo
objects to expose viagetUIInfo()
via a utility class.void
setNonBrowserSupported
(boolean flag) Set whether this flow supports non-browser clients.void
Set condition to determine whether this flow supports non-browser clients.void
setPolicyName
(String name) Set an explicit access control policy name to apply.void
Set a lookup strategy to use to obtain the access control policy for this flow.void
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
Sets aPrincipalServiceManager
to use for string-based principal processing.void
Set thePrivacyStatementURL
objects to expose viagetUIInfo()
via a utility class.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
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
setResolveAttributes
(boolean flag) Set whether attributes should be resolved during the profile.void
Set a condition to determine whether attributes should be resolved during the profile.toString()
Methods inherited from class net.shibboleth.idp.profile.config.AbstractProfileConfiguration
getDisallowedFeatures, isFeatureDisallowed, setDisallowedFeatures, setDisallowedFeaturesLookupStrategy, setInboundFlowsLookupStrategy, setInboundInterceptorFlows, setInboundInterceptorFlowsLookupStrategy, setOutboundFlowsLookupStrategy, setOutboundInterceptorFlows, setOutboundInterceptorFlowsLookupStrategy, setSecurityConfiguration, setSecurityConfigurationLookupStrategy
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent
setId
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractIdentifiedInitializableComponent
doInitialize, getId
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, doDestroy, initialize, isDestroyed, isInitialized
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface net.shibboleth.idp.admin.AdministrativeFlowDescriptor
isLocal
Methods inherited from interface net.shibboleth.utilities.java.support.component.DestructableComponent
destroy, isDestroyed
Methods inherited from interface net.shibboleth.utilities.java.support.component.IdentifiableComponent
setId
Methods inherited from interface net.shibboleth.utilities.java.support.component.IdentifiedComponent
getId
Methods inherited from interface net.shibboleth.utilities.java.support.component.InitializableComponent
initialize, isInitialized
-
Field Details
-
loggingId
Logging ID. -
supportsNonBrowserPredicate
Whether this flow supports non-browser clients. -
authenticatedPredicate
Whether user authentication is required. -
uiInfo
Expose user interface details. -
policyNameLookupStrategy
Lookup strategy for access control policy to apply. -
resolveAttributesPredicate
Whether attributes should be resolved in the course of the flow. -
defaultAuthenticationMethodsLookupStrategy
@Nonnull private Function<ProfileRequestContext,Collection<Principal>> defaultAuthenticationMethodsLookupStrategySelects, and limits, the authentication flows to use for requests by supported principals. -
stringBasedPrincipalsLookupStrategy
@Nonnull private Function<ProfileRequestContext,Collection<String>> stringBasedPrincipalsLookupStrategyAuhentication methods provided by delimited strings, for post-initialization override viaPrincipalServiceManager
. -
authenticationFlowsLookupStrategy
Filters the usable authentication flows. -
postAuthenticationFlowsLookupStrategy
@Nonnull private Function<ProfileRequestContext,Collection<String>> postAuthenticationFlowsLookupStrategyEnables post-authentication interceptor flows. -
forceAuthnPredicate
Whether to mandate forced authentication for the request. -
proxyCountLookupStrategy
Lookup function to supply proxyCount property. -
builderFactory
Builder factory for XMLObjects needed in UIInfo emulation. -
principalServiceManager
Access to principal services.
-
-
Constructor Details
-
BasicAdministrativeFlowDescriptor
Constructor.- Parameters:
id
- profile Id
-
-
Method Details
-
setPrincipalServiceManager
Sets aPrincipalServiceManager
to use for string-based principal processing.- Parameters:
manager
- manager to set- Since:
- 4.2.0
-
getLoggingId
Get a logging ID to use when auditing this profile.- Specified by:
getLoggingId
in interfaceAdministrativeFlowDescriptor
- Returns:
- logging ID
-
setLoggingId
Set a logging ID to use when auditing this profile.- Parameters:
id
- logging ID
-
isNonBrowserSupported
Get whether this flow supports non-browser clients (default is true).- Specified by:
isNonBrowserSupported
in interfaceAdministrativeFlowDescriptor
- Parameters:
profileRequestContext
- current profile request context- Returns:
- whether this flow supports non-browser clients
-
setNonBrowserSupported
public void setNonBrowserSupported(boolean flag) Set whether this flow supports non-browser clients.- Parameters:
flag
- flag to set
-
setNonBrowserSupportedPredicate
Set condition to determine whether this flow supports non-browser clients.- Parameters:
condition
- condition to apply
-
isAuthenticated
Get whether user authentication is required (default is false).- Specified by:
isAuthenticated
in interfaceAdministrativeFlowDescriptor
- Parameters:
profileRequestContext
- current profile request context- Returns:
- whether user authentication is required
-
setAuthenticated
public void setAuthenticated(boolean flag) Set whether user authentication is required (default is false).- Parameters:
flag
- flag to set
-
setAuthenticatedPredicate
Set condition to determine whether user authentication is required (default is false).- Parameters:
condition
- condition to apply
-
getUIInfo
Get the user interface details for this profile.- Specified by:
getUIInfo
in interfaceAdministrativeFlowDescriptor
- Returns:
- user interface details
-
setDisplayNames
Set theDisplayName
objects to expose viagetUIInfo()
via a utility class.- Parameters:
displayNames
- utility class collection of language-annotated strings
-
setDescriptions
Set theDescription
objects to expose viagetUIInfo()
via a utility class.- Parameters:
descriptions
- utility class collection of language-annotated strings
-
setLogos
public void setLogos(@Nonnull @NonnullElements Collection<BasicAdministrativeFlowDescriptor.Logo> logos) Set theLogo
objects to expose viagetUIInfo()
via a utility class.- Parameters:
logos
- utility class collection of logo metadata
-
setInformationURLs
Set theInformationURL
objects to expose viagetUIInfo()
via a utility class.- Parameters:
urls
- utility class collection of language-annotated strings
-
setPrivacyStatementURLs
Set thePrivacyStatementURL
objects to expose viagetUIInfo()
via a utility class.- Parameters:
urls
- utility class collection of language-annotated strings
-
getPolicyName
Get the access control policy for this flow.- Specified by:
getPolicyName
in interfaceAdministrativeFlowDescriptor
- Parameters:
profileRequestContext
- current profile request context- Returns:
- name of access control policy
-
setPolicyName
Set an explicit access control policy name to apply.- Parameters:
name
- policy name
-
setPolicyNameLookupStrategy
Set a lookup strategy to use to obtain the access control policy for this flow.- Parameters:
strategy
- lookup strategy
-
isResolveAttributes
Get whether to resolve attributes.- Specified by:
isResolveAttributes
in interfaceAttributeResolvingProfileConfiguration
- Parameters:
profileRequestContext
- current profile request context- Returns:
- true iff resolution should be done
-
setResolveAttributes
public void setResolveAttributes(boolean flag) Set whether attributes should be resolved during the profile.- Parameters:
flag
- flag to set
-
setResolveAttributesPredicate
Set a condition to determine whether attributes should be resolved during the profile.- Parameters:
condition
- condition to set
-
getInboundInterceptorFlows
@Nonnull @NonnullElements @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 interfaceProfileConfiguration
- Overrides:
getInboundInterceptorFlows
in classAbstractProfileConfiguration
- Parameters:
profileRequestContext
- current profile request context- Returns:
- a set of interceptor flow IDs to enable
-
getOutboundInterceptorFlows
@Nonnull @NonnullElements @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 interfaceProfileConfiguration
- Overrides:
getOutboundInterceptorFlows
in classAbstractProfileConfiguration
- Parameters:
profileRequestContext
- current profile request context- Returns:
- a set of interceptor flow IDs to enable
-
getSecurityConfiguration
@Nullable public SecurityConfiguration getSecurityConfiguration(@Nullable ProfileRequestContext profileRequestContext) Get theSecurityConfiguration
to use with this profile.- Specified by:
getSecurityConfiguration
in interfaceProfileConfiguration
- Overrides:
getSecurityConfiguration
in classAbstractProfileConfiguration
- Parameters:
profileRequestContext
- current profile request context- Returns:
- security configuration to use with this profile
-
getDefaultAuthenticationMethods
@Nonnull @NonnullElements @NotLive @Unmodifiable public List<Principal> getDefaultAuthenticationMethods(@Nullable ProfileRequestContext profileRequestContext) Get the default authentication methods to use, expressed as custom principals.- Specified by:
getDefaultAuthenticationMethods
in interfaceAuthenticationProfileConfiguration
- Parameters:
profileRequestContext
- current profile request context- Returns:
- default authentication methods to use
-
setDefaultAuthenticationMethods
public void setDefaultAuthenticationMethods(@Nullable @NonnullElements 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 authentication methods to use, expressed as custom principals.- Parameters:
strategy
- lookup strategy
-
setDefaultAuthenticationMethodsByString
public void setDefaultAuthenticationMethodsByString(@Nullable @NonnullElements Collection<String> methods) Set the authentication methods to use, expressed as strings that will be converted to principals during initialization.- Parameters:
methods
- default authentication methods to use, expressed as strings- Since:
- 4.2.0
-
setDefaultAuthenticationMethodsByStringLookupStrategy
public void setDefaultAuthenticationMethodsByStringLookupStrategy(@Nonnull Function<ProfileRequestContext, Collection<String>> strategy) Set a lookup strategy for the authentication methods to use, expressed as strings that will be converted to principals during initialization.- Parameters:
strategy
- lookup strategy- Since:
- 4.2.0
-
getAuthenticationFlows
@Nonnull @NonnullElements @NotLive @Unmodifiable public Set<String> getAuthenticationFlows(@Nullable ProfileRequestContext profileRequestContext) 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 interfaceAuthenticationProfileConfiguration
- Parameters:
profileRequestContext
- current profile request context- Returns:
- a set of authentication flow IDs to allow
-
setAuthenticationFlows
Set the authentication flows to use.- Parameters:
flows
- flow identifiers to use
-
setAuthenticationFlowsLookupStrategy
public void setAuthenticationFlowsLookupStrategy(@Nonnull Function<ProfileRequestContext, Set<String>> strategy) Set a lookup strategy for the authentication flows to use.- Parameters:
strategy
- lookup strategy
-
getPostAuthenticationFlows
@Nonnull @NonnullElements @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 interfaceAuthenticationProfileConfiguration
- Parameters:
profileRequestContext
- current profile request context- Returns:
- a set of interceptor flow IDs to enable
-
setPostAuthenticationFlows
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
-
isForceAuthn
Get whether the authentication process should include a proof of user presence.- Specified by:
isForceAuthn
in interfaceAuthenticationProfileConfiguration
- 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
Set a condition to determine whether a fresh user presence proof should be required for this request.- Parameters:
condition
- condition to set
-
getProxyCount
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 interfaceAuthenticationProfileConfiguration
- Parameters:
profileRequestContext
- current profile request context- Returns:
- maximum number of times an assertion or authentication may be proxied
-
setProxyCount
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
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
-
hashCode
public int hashCode()- Overrides:
hashCode
in classAbstractProfileConfiguration
-
equals
- Overrides:
equals
in classAbstractProfileConfiguration
-
toString
-