Package org.opensaml.saml.common.profile
Class AbstractNameIdentifierGenerator<NameIdType extends SAMLObject>
java.lang.Object
net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
net.shibboleth.utilities.java.support.component.AbstractIdentifiedInitializableComponent
net.shibboleth.utilities.java.support.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 String
The identifier Format supported.private String
Explicit NameQualifier, if any.private boolean
Flag allowing qualifier(s) to be omitted when they would match defaults or are not set.private String
Explicit SPNameQualifier, if any.private String
SPProvidedID, if any. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract NameIdType
doGenerate
(ProfileRequestContext profileRequestContext) Override this method to fully control the generation process.protected void
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 String
getEffectiveIdPNameQualifier
(ProfileRequestContext profileRequestContext) Get the effective NameQualifier to apply based on the properties set and the current request.protected String
getEffectiveSPNameQualifier
(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 String
getIdentifier
(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.boolean
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.void
setActivationCondition
(Predicate<ProfileRequestContext> condition) Set an activation condition that determines whether to run or not.void
Set the lookup strategy to obtain the default IdP NameQualifier.void
Set the lookup strategy to obtain the default SPNameQualifier.void
Set the Format attribute supported.void
setIdPNameQualifier
(String qualifier) Set the NameQualifier attribute.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.void
setSPNameQualifier
(String qualifier) Set the SPNameQualifier attribute.void
Set the SPProvidedID attribute.boolean
test
(ProfileRequestContext input) Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent
setId
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractIdentifiedInitializableComponent
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, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface net.shibboleth.utilities.java.support.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:
getFormat
in 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
-
doInitialize
- Overrides:
doInitialize
in classAbstractIdentifiedInitializableComponent
- Throws:
ComponentInitializationException
-
test
- Specified by:
test
in interfacePredicate<NameIdType extends SAMLObject>
-
generate
@Nullable public NameIdType generate(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull @NotEmpty String theFormat) throws SAMLException Generate an identifier object.- Specified by:
generate
in 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
-