Package net.shibboleth.idp.admin
Class BasicAdministrativeFlowDescriptor
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.admin.BasicAdministrativeFlowDescriptor
- All Implemented Interfaces:
AdministrativeFlowDescriptor,AuthenticationProfileConfiguration,InterceptorAwareProfileConfiguration,FlowDescriptor,net.shibboleth.profile.config.AttributeResolvingProfileConfiguration,net.shibboleth.profile.config.ConditionalProfileConfiguration,net.shibboleth.profile.config.ProfileConfiguration,Component,DestructableComponent,IdentifiableComponent,IdentifiedComponent,InitializableComponent
- Direct Known Subclasses:
OneTimeAdministrativeFlowDescriptor
public class BasicAdministrativeFlowDescriptor
extends AbstractInterceptorAwareProfileConfiguration
implements AdministrativeFlowDescriptor
A descriptor for an administrative flow.
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 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) getDefaultAuthenticationMethods(ProfileRequestContext profileRequestContext) getInboundInterceptorFlows(ProfileRequestContext profileRequestContext) Get a logging ID to use when auditing this profile.getOutboundInterceptorFlows(ProfileRequestContext profileRequestContext) getPolicyName(ProfileRequestContext profileRequestContext) Get the access control policy for this flow.getPostAuthenticationFlows(ProfileRequestContext profileRequestContext) getProxyCount(ProfileRequestContext profileRequestContext) 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) 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.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. -
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
-
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 interfacenet.shibboleth.profile.config.AttributeResolvingProfileConfiguration
-
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) - Specified by:
getInboundInterceptorFlowsin interfaceInterceptorAwareProfileConfiguration- Overrides:
getInboundInterceptorFlowsin classAbstractInterceptorAwareProfileConfiguration
-
getOutboundInterceptorFlows
@Nonnull @NotLive @Unmodifiable public List<String> getOutboundInterceptorFlows(@Nullable ProfileRequestContext profileRequestContext) - Specified by:
getOutboundInterceptorFlowsin interfaceInterceptorAwareProfileConfiguration- Overrides:
getOutboundInterceptorFlowsin classAbstractInterceptorAwareProfileConfiguration
-
getSecurityConfiguration
@Nullable public SecurityConfiguration getSecurityConfiguration(@Nullable ProfileRequestContext profileRequestContext) - Specified by:
getSecurityConfigurationin interfacenet.shibboleth.profile.config.ProfileConfiguration- Overrides:
getSecurityConfigurationin classnet.shibboleth.profile.config.AbstractProfileConfiguration
-
getDefaultAuthenticationMethods
@Nonnull @NotLive @Unmodifiable public List<Principal> getDefaultAuthenticationMethods(@Nullable ProfileRequestContext profileRequestContext) - Specified by:
getDefaultAuthenticationMethodsin interfaceAuthenticationProfileConfiguration
-
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) - Specified by:
getAuthenticationFlowsin interfaceAuthenticationProfileConfiguration
-
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) - Specified by:
getPostAuthenticationFlowsin interfaceAuthenticationProfileConfiguration
-
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
- Specified by:
isForceAuthnin interfaceAuthenticationProfileConfiguration
-
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
- Specified by:
getProxyCountin interfaceAuthenticationProfileConfiguration
-
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 classnet.shibboleth.profile.config.AbstractProfileConfiguration
-
equals
- Overrides:
equalsin classnet.shibboleth.profile.config.AbstractProfileConfiguration
-
toString
-