Class BasicAdministrativeFlowDescriptor
- All Implemented Interfaces:
AdministrativeFlowDescriptor,AuthenticationProfileConfiguration,InterceptorAwareProfileConfiguration,FlowDescriptor,AttributeResolvingProfileConfiguration,ConditionalProfileConfiguration,OverriddenIssuerProfileConfiguration,ProfileConfiguration,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 classA wrapper class to construct logo objects for exposure byUIInfointerface. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Predicate<ProfileRequestContext>Whether user authentication is required.private Function<ProfileRequestContext,Set<String>> Filters the usable authentication flows.private final XMLObjectBuilderFactoryBuilder 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 Function<ProfileRequestContext,String> Issuer lookup strategy.private StringLogging ID.private Function<ProfileRequestContext,String> Lookup strategy for access control policy to apply.private Function<ProfileRequestContext,Collection<String>> Enables post-authentication interceptor flows.private PrincipalServiceManagerAccess 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 UIInfoExpose user interface details.Fields inherited from interface net.shibboleth.profile.config.ProfileConfiguration
DEFAULT_DISALLOWED_FEATURES -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleangetAuthenticationFlows(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.getIssuer(ProfileRequestContext profileRequestContext) 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 the user interface details for this profile.inthashCode()booleanisAuthenticated(ProfileRequestContext profileRequestContext) Get whether user authentication is required (default is false).booleanisForceAuthn(ProfileRequestContext profileRequestContext) Get whether the authentication process should include a proof of user presence.booleanisNonBrowserSupported(ProfileRequestContext profileRequestContext) Get whether this flow supports non-browser clients (default is true).booleanisResolveAttributes(ProfileRequestContext profileRequestContext) voidsetAuthenticated(boolean flag) Set whether user authentication is required (default is false).voidsetAuthenticatedPredicate(Predicate<ProfileRequestContext> condition) Set condition to determine whether user authentication is required (default is false).voidsetAuthenticationFlows(Collection<String> flows) Set the authentication flows to use.voidSet a lookup strategy for the authentication flows to use.voidSet the default authentication methods to use, expressed as custom principals.voidSet the authentication methods to use, expressed as strings that will be converted to principals during initialization.voidsetDefaultAuthenticationMethodsByStringLookupStrategy(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.voidsetDefaultAuthenticationMethodsLookupStrategy(Function<ProfileRequestContext, Collection<Principal>> strategy) Set a lookup strategy for the authentication methods to use, expressed as custom principals.voidsetDescriptions(Collection<LangBearingString> descriptions) Set theDescriptionobjects to expose viagetUIInfo()via a utility class.voidsetDisplayNames(Collection<LangBearingString> displayNames) Set theDisplayNameobjects to expose viagetUIInfo()via a utility class.voidsetForceAuthn(boolean flag) Set whether a fresh user presence proof should be required for this request.voidsetForceAuthnPredicate(Predicate<ProfileRequestContext> condition) Set a condition to determine whether a fresh user presence proof should be required for this request.voidSet theInformationURLobjects to expose viagetUIInfo()via a utility class.voidSet the issuer value to use with this profile.voidSet the lookup strategy for the issuer value to use with this profile.voidsetLoggingId(String id) Set a logging ID to use when auditing this profile.voidSet theLogoobjects to expose viagetUIInfo()via a utility class.voidsetNonBrowserSupported(boolean flag) Set whether this flow supports non-browser clients.voidSet condition to determine whether this flow supports non-browser clients.voidsetPolicyName(String name) Set an explicit access control policy name to apply.voidSet a lookup strategy to use to obtain the access control policy for this flow.voidSet the ordered collection of post-authentication interceptor flows to enable.voidsetPostAuthenticationFlowsLookupStrategy(Function<ProfileRequestContext, Collection<String>> strategy) Set a lookup strategy for the post-authentication interceptor flows to enable.voidSets aPrincipalServiceManagerto use for string-based principal processing.voidSet thePrivacyStatementURLobjects to expose viagetUIInfo()via a utility class.voidsetProxyCount(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.voidSet 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.voidsetResolveAttributes(boolean flag) Set whether attributes should be resolved during the profile.voidSet a condition to determine whether attributes should be resolved during the profile.toString()Methods inherited from class net.shibboleth.idp.profile.config.AbstractInterceptorAwareProfileConfiguration
setInboundInterceptorFlows, setInboundInterceptorFlowsLookupStrategy, setOutboundInterceptorFlows, setOutboundInterceptorFlowsLookupStrategyMethods inherited from class net.shibboleth.profile.config.AbstractConditionalProfileConfiguration
getActivationCondition, setActivationConditionMethods inherited from class net.shibboleth.profile.config.AbstractProfileConfiguration
getDisallowedFeatures, isFeatureDisallowed, setDisallowedFeatures, setDisallowedFeaturesLookupStrategy, setSecurityConfiguration, setSecurityConfigurationLookupStrategyMethods inherited from class net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent
setIdMethods inherited from class net.shibboleth.shared.component.AbstractIdentifiedInitializableComponent
doInitialize, ensureId, getId, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentExceptionMethods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent
checkComponentActive, checkSetterPreconditions, destroy, doDestroy, initialize, isDestroyed, isInitializedMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface net.shibboleth.idp.admin.AdministrativeFlowDescriptor
isLocalMethods inherited from interface net.shibboleth.shared.component.DestructableComponent
destroy, isDestroyedMethods inherited from interface net.shibboleth.shared.component.IdentifiableComponent
setIdMethods inherited from interface net.shibboleth.shared.component.IdentifiedComponent
getIdMethods inherited from interface net.shibboleth.shared.component.InitializableComponent
initialize, isInitializedMethods inherited from interface net.shibboleth.profile.config.ProfileConfiguration
getDisallowedFeatures, isFeatureDisallowed
-
Field Details
-
loggingId
Logging ID. -
issuerLookupStrategy
Issuer lookup strategy. -
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 aPrincipalServiceManagerto 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:
getLoggingIdin interfaceAdministrativeFlowDescriptor- Returns:
- logging ID
-
setLoggingId
Set a logging ID to use when auditing this profile.- Parameters:
id- logging ID
-
getIssuer
- Specified by:
getIssuerin interfaceOverriddenIssuerProfileConfiguration- Since:
- 5.1.0
-
setIssuer
Set the issuer value to use with this profile.- Parameters:
id- issuer value- Since:
- 5.1.0
-
setIssuerLookupStrategy
Set the lookup strategy for the issuer value to use with this profile.- Parameters:
strategy- lookup strategy- Since:
- 5.1.0
-
isNonBrowserSupported
Get whether this flow supports non-browser clients (default is true).- Specified by:
isNonBrowserSupportedin 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:
isAuthenticatedin 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:
getUIInfoin interfaceAdministrativeFlowDescriptor- Returns:
- user interface details
-
setDisplayNames
Set theDisplayNameobjects to expose viagetUIInfo()via a utility class.- Parameters:
displayNames- utility class collection of language-annotated strings
-
setDescriptions
Set theDescriptionobjects to expose viagetUIInfo()via a utility class.- Parameters:
descriptions- utility class collection of language-annotated strings
-
setLogos
Set theLogoobjects to expose viagetUIInfo()via a utility class.- Parameters:
logos- utility class collection of logo metadata
-
setInformationURLs
Set theInformationURLobjects to expose viagetUIInfo()via a utility class.- Parameters:
urls- utility class collection of language-annotated strings
-
setPrivacyStatementURLs
Set thePrivacyStatementURLobjects 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:
getPolicyNamein 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
- Specified by:
isResolveAttributesin interfaceAttributeResolvingProfileConfiguration
-
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 @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_PREFIXprefix common to all interceptor flows.- Specified by:
getInboundInterceptorFlowsin interfaceInterceptorAwareProfileConfiguration- Overrides:
getInboundInterceptorFlowsin classAbstractInterceptorAwareProfileConfiguration- Parameters:
profileRequestContext- current profile request context- Returns:
- a set of interceptor flow IDs to enable
-
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_PREFIXprefix common to all interceptor flows.- Specified by:
getOutboundInterceptorFlowsin interfaceInterceptorAwareProfileConfiguration- Overrides:
getOutboundInterceptorFlowsin classAbstractInterceptorAwareProfileConfiguration- Parameters:
profileRequestContext- current profile request context- Returns:
- a set of interceptor flow IDs to enable
-
getSecurityConfiguration
@Nullable public SecurityConfiguration getSecurityConfiguration(@Nullable ProfileRequestContext profileRequestContext) - Specified by:
getSecurityConfigurationin interfaceProfileConfiguration- Overrides:
getSecurityConfigurationin classAbstractProfileConfiguration
-
getDefaultAuthenticationMethods
@Nonnull @NotLive @Unmodifiable public List<Principal> getDefaultAuthenticationMethods(@Nullable ProfileRequestContext profileRequestContext) Get the default authentication methods to use, expressed as custom principals.- Specified by:
getDefaultAuthenticationMethodsin interfaceAuthenticationProfileConfiguration- Parameters:
profileRequestContext- current profile request context- Returns:
- default authentication methods to use
-
setDefaultAuthenticationMethods
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
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 @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_PREFIXprefix common to all interceptor flows.- Specified by:
getAuthenticationFlowsin 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 @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_PREFIXprefix common to all interceptor flows.- Specified by:
getPostAuthenticationFlowsin 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:
isForceAuthnin 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:
getProxyCountin 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:
hashCodein classAbstractProfileConfiguration
-
equals
- Overrides:
equalsin classAbstractProfileConfiguration
-
toString
-