Package org.opensaml.saml.common.profile
Class AbstractNameIdentifierGenerator<NameIdType extends SAMLObject>
java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
net.shibboleth.shared.component.AbstractIdentifiedInitializableComponent
net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent
org.opensaml.saml.common.profile.AbstractNameIdentifierGenerator<NameIdType>
- Type Parameters:
NameIdType- type of object produced
- All Implemented Interfaces:
Predicate<ProfileRequestContext>,Component,DestructableComponent,IdentifiableComponent,IdentifiedComponent,InitializableComponent,FormatSpecificNameIdentifierGenerator<NameIdType>,NameIdentifierGenerator<NameIdType>
- Direct Known Subclasses:
AbstractSAML1NameIdentifierGenerator,AbstractSAML2NameIDGenerator
public abstract class AbstractNameIdentifierGenerator<NameIdType extends SAMLObject>
extends AbstractIdentifiableInitializableComponent
implements FormatSpecificNameIdentifierGenerator<NameIdType>, Predicate<ProfileRequestContext>
Abstract base class for simple implementations of
NameIdentifierGenerator.
This class is suitable for implementing generators that produce simple kinds of identifiers. It supports various options controlling the inclusion of qualifier attributes.
Subclasses must override one of doGenerate(ProfileRequestContext) or
getIdentifier(ProfileRequestContext).
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Predicate<ProfileRequestContext>A predicate indicating whether the component applies to a request.private Function<ProfileRequestContext,String> Optional lookup function for obtaining default NameQualifier.private Function<ProfileRequestContext,String> Optional lookup function for obtaining default SPNameQualifier.private StringThe identifier Format supported.private StringExplicit NameQualifier, if any.private booleanFlag allowing qualifier(s) to be omitted when they would match defaults or are not set.private StringExplicit SPNameQualifier, if any.private StringSPProvidedID, if any. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract NameIdTypedoGenerate(ProfileRequestContext profileRequestContext) Override this method to fully control the generation process.generate(ProfileRequestContext profileRequestContext, String theFormat) Generate an identifier object.Get the lookup strategy to obtain the default IdP NameQualifier.Get the lookup strategy to obtain the default SPNameQualifier.protected StringgetEffectiveIdPNameQualifier(ProfileRequestContext profileRequestContext) Get the effective NameQualifier to apply based on the properties set and the current request.protected StringgetEffectiveSPNameQualifier(ProfileRequestContext profileRequestContext) Get the effective SPNameQualifier to apply based on the properties set and the current request.Get the identifier format associated with this component.protected StringgetIdentifier(ProfileRequestContext profileRequestContext) Override this method to reuse this implementation ofdoGenerate(ProfileRequestContext), and return the identifier to be included as the value of the eventual element.Get the NameQualifier attribute.Get the SPNameQualifier attribute.Get the SPProvidedID attribute.booleanGet whether to omit NameQualifier/SPNameQualifier attributes if the qualifiers are not explicitly set or are set to values matching the IdP and relying party names respectively.voidsetActivationCondition(Predicate<ProfileRequestContext> condition) Set an activation condition that determines whether to run or not.voidSet the lookup strategy to obtain the default IdP NameQualifier.voidSet the lookup strategy to obtain the default SPNameQualifier.voidSet the Format attribute supported.voidsetIdPNameQualifier(String qualifier) Set the NameQualifier attribute.voidsetOmitQualifiers(boolean flag) Set whether to omit NameQualifier/SPNameQualifier attributes if the qualifiers are not explicitly set or are set to values matching the IdP and relying party names respectively.voidsetSPNameQualifier(String qualifier) Set the SPNameQualifier attribute.voidSet the SPProvidedID attribute.booleantest(ProfileRequestContext input) Methods 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, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.shibboleth.shared.component.IdentifiedComponent
getId
-
Field Details
-
activationCondition
A predicate indicating whether the component applies to a request. -
defaultIdPNameQualifierLookupStrategy
Optional lookup function for obtaining default NameQualifier. -
defaultSPNameQualifierLookupStrategy
Optional lookup function for obtaining default SPNameQualifier. -
omitQualifiers
private boolean omitQualifiersFlag allowing qualifier(s) to be omitted when they would match defaults or are not set. -
format
The identifier Format supported. -
idpNameQualifier
Explicit NameQualifier, if any. -
spNameQualifier
Explicit SPNameQualifier, if any. -
spProvidedId
SPProvidedID, if any.
-
-
Constructor Details
-
AbstractNameIdentifierGenerator
protected AbstractNameIdentifierGenerator()Constructor.
-
-
Method Details
-
setActivationCondition
Set an activation condition that determines whether to run or not.- Parameters:
condition- an activation condition
-
getDefaultIdPNameQualifierLookupStrategy
Get the lookup strategy to obtain the default IdP NameQualifier.- Returns:
- lookup strategy
-
setDefaultIdPNameQualifierLookupStrategy
public void setDefaultIdPNameQualifierLookupStrategy(@Nullable Function<ProfileRequestContext, String> strategy) Set the lookup strategy to obtain the default IdP NameQualifier.- Parameters:
strategy- lookup strategy
-
getDefaultSPNameQualifierLookupStrategy
Get the lookup strategy to obtain the default SPNameQualifier.- Returns:
- lookup strategy
-
setDefaultSPNameQualifierLookupStrategy
public void setDefaultSPNameQualifierLookupStrategy(@Nullable Function<ProfileRequestContext, String> strategy) Set the lookup strategy to obtain the default SPNameQualifier.- Parameters:
strategy- lookup strategy
-
isOmitQualifiers
public boolean isOmitQualifiers()Get whether to omit NameQualifier/SPNameQualifier attributes if the qualifiers are not explicitly set or are set to values matching the IdP and relying party names respectively.- Returns:
- whether to omit qualifiers
-
setOmitQualifiers
public void setOmitQualifiers(boolean flag) Set whether to omit NameQualifier/SPNameQualifier attributes if the qualifiers are not explicitly set or are set to values matching the IdP and relying party names respectively.- Parameters:
flag- flag to set
-
getFormat
Get the identifier format associated with this component.- Specified by:
getFormatin interfaceFormatSpecificNameIdentifierGenerator<NameIdType extends SAMLObject>- Returns:
- identifier format
-
setFormat
Set the Format attribute supported.- Parameters:
f- format to set
-
getIdPNameQualifier
Get the NameQualifier attribute.- Returns:
- the qualifier attribute
-
setIdPNameQualifier
Set the NameQualifier attribute.If not set, and
isOmitQualifiers()is false, then the value used will be derived from the IdP identity.- Parameters:
qualifier- qualifier to set
-
getSPNameQualifier
Get the SPNameQualifier attribute.- Returns:
- the qualifier attribute
-
setSPNameQualifier
Set the SPNameQualifier attribute.If not set, and
isOmitQualifiers()is false, then the value used will be derived from the relying party identity.- Parameters:
qualifier- qualifier to set
-
getSPProvidedID
Get the SPProvidedID attribute.- Returns:
- the secondary ID attribute
-
setSPProvidedId
Set the SPProvidedID attribute.- Parameters:
id- value to set
-
test
- Specified by:
testin interfacePredicate<NameIdType extends SAMLObject>
-
generate
@Nullable public NameIdType generate(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull @NotEmpty String theFormat) throws SAMLException Generate an identifier object.- Specified by:
generatein interfaceNameIdentifierGenerator<NameIdType extends SAMLObject>- Parameters:
profileRequestContext- the current profile request contexttheFormat- the identifier format to generate- Returns:
- the identifier object, or null
- Throws:
SAMLException- if an error occurs generating an identifier
-
doGenerate
@Nullable protected abstract NameIdType doGenerate(@Nonnull ProfileRequestContext profileRequestContext) throws SAMLException Override this method to fully control the generation process.- Parameters:
profileRequestContext- current profile request context- Returns:
- the generated object
- Throws:
SAMLException- if an error occurs
-
getIdentifier
@Nullable protected String getIdentifier(@Nonnull ProfileRequestContext profileRequestContext) throws SAMLException Override this method to reuse this implementation ofdoGenerate(ProfileRequestContext), and return the identifier to be included as the value of the eventual element.- Parameters:
profileRequestContext- current profile request context- Returns:
- the generated identifier
- Throws:
SAMLException- if an error occurs
-
getEffectiveIdPNameQualifier
@Nullable protected String getEffectiveIdPNameQualifier(@Nonnull ProfileRequestContext profileRequestContext) Get the effective NameQualifier to apply based on the properties set and the current request.- Parameters:
profileRequestContext- current profile context- Returns:
- the effective NameQualifier to set, or null
-
getEffectiveSPNameQualifier
@Nullable protected String getEffectiveSPNameQualifier(@Nonnull ProfileRequestContext profileRequestContext) Get the effective SPNameQualifier to apply based on the properties set and the current request.- Parameters:
profileRequestContext- current profile context- Returns:
- the effective NameQualifier to set, or null
-