NameIdType - type of object producedpublic abstract class AbstractNameIdentifierGenerator<NameIdType extends SAMLObject> extends net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent implements FormatSpecificNameIdentifierGenerator<NameIdType>, com.google.common.base.Predicate<ProfileRequestContext>
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).
| Modifier and Type | Field and Description |
|---|---|
private com.google.common.base.Predicate<ProfileRequestContext> |
activationCondition
A predicate indicating whether the component applies to a request.
|
private com.google.common.base.Function<ProfileRequestContext,java.lang.String> |
defaultIdPNameQualifierLookupStrategy
Optional lookup function for obtaining default NameQualifier.
|
private com.google.common.base.Function<ProfileRequestContext,java.lang.String> |
defaultSPNameQualifierLookupStrategy
Optional lookup function for obtaining default SPNameQualifier.
|
private java.lang.String |
format
The identifier Format supported.
|
private java.lang.String |
idpNameQualifier
Explicit NameQualifier, if any.
|
private boolean |
omitQualifiers
Flag allowing qualifier(s) to be omitted when they would match defaults or are not set.
|
private java.lang.String |
spNameQualifier
Explicit SPNameQualifier, if any.
|
private java.lang.String |
spProvidedId
SPProvidedID, if any.
|
| Modifier | Constructor and Description |
|---|---|
protected |
AbstractNameIdentifierGenerator()
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
apply(ProfileRequestContext input) |
protected abstract NameIdType |
doGenerate(ProfileRequestContext profileRequestContext)
Override this method to fully control the generation process.
|
protected void |
doInitialize() |
NameIdType |
generate(ProfileRequestContext profileRequestContext,
java.lang.String theFormat)
Generate an identifier object.
|
com.google.common.base.Function<ProfileRequestContext,java.lang.String> |
getDefaultIdPNameQualifierLookupStrategy()
Get the lookup strategy to obtain the default IdP NameQualifier.
|
com.google.common.base.Function<ProfileRequestContext,java.lang.String> |
getDefaultSPNameQualifierLookupStrategy()
Get the lookup strategy to obtain the default SPNameQualifier.
|
protected java.lang.String |
getEffectiveIdPNameQualifier(ProfileRequestContext profileRequestContext)
Get the effective NameQualifier to apply based on the properties set and the current request.
|
protected java.lang.String |
getEffectiveSPNameQualifier(ProfileRequestContext profileRequestContext)
Get the effective SPNameQualifier to apply based on the properties set and the current request.
|
java.lang.String |
getFormat()
Get the identifier format associated with this component.
|
protected java.lang.String |
getIdentifier(ProfileRequestContext profileRequestContext)
Override this method to reuse this implementation of
doGenerate(ProfileRequestContext), and return the
identifier to be included as the value of the eventual element. |
java.lang.String |
getIdPNameQualifier()
Get the NameQualifier attribute.
|
java.lang.String |
getSPNameQualifier()
Get the SPNameQualifier attribute.
|
java.lang.String |
getSPProvidedID()
Get the SPProvidedID attribute.
|
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.
|
void |
setActivationCondition(com.google.common.base.Predicate<ProfileRequestContext> condition)
Set an activation condition that determines whether to run or not.
|
void |
setDefaultIdPNameQualifierLookupStrategy(com.google.common.base.Function<ProfileRequestContext,java.lang.String> strategy)
Set the lookup strategy to obtain the default IdP NameQualifier.
|
void |
setDefaultSPNameQualifierLookupStrategy(com.google.common.base.Function<ProfileRequestContext,java.lang.String> strategy)
Set the lookup strategy to obtain the default SPNameQualifier.
|
void |
setFormat(java.lang.String f)
Set the Format attribute supported.
|
void |
setIdPNameQualifier(java.lang.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(java.lang.String qualifier)
Set the SPNameQualifier attribute.
|
void |
setSPProvidedId(java.lang.String id)
Set the SPProvidedID attribute.
|
setIdgetIddestroy, doDestroy, initialize, isDestroyed, isInitialized@Nonnull private com.google.common.base.Predicate<ProfileRequestContext> activationCondition
@Nullable private com.google.common.base.Function<ProfileRequestContext,java.lang.String> defaultIdPNameQualifierLookupStrategy
@Nullable private com.google.common.base.Function<ProfileRequestContext,java.lang.String> defaultSPNameQualifierLookupStrategy
private boolean omitQualifiers
@NonnullAfterInit @NotEmpty private java.lang.String format
@Nullable private java.lang.String idpNameQualifier
@Nullable private java.lang.String spNameQualifier
@Nullable private java.lang.String spProvidedId
protected AbstractNameIdentifierGenerator()
public void setActivationCondition(@Nonnull
com.google.common.base.Predicate<ProfileRequestContext> condition)
condition - an activation condition@Nullable public com.google.common.base.Function<ProfileRequestContext,java.lang.String> getDefaultIdPNameQualifierLookupStrategy()
public void setDefaultIdPNameQualifierLookupStrategy(@Nullable
com.google.common.base.Function<ProfileRequestContext,java.lang.String> strategy)
strategy - lookup strategy@Nullable public com.google.common.base.Function<ProfileRequestContext,java.lang.String> getDefaultSPNameQualifierLookupStrategy()
public void setDefaultSPNameQualifierLookupStrategy(@Nullable
com.google.common.base.Function<ProfileRequestContext,java.lang.String> strategy)
strategy - lookup strategypublic boolean isOmitQualifiers()
public void setOmitQualifiers(boolean flag)
flag - flag to set@NonnullAfterInit @NotEmpty public java.lang.String getFormat()
getFormat in interface FormatSpecificNameIdentifierGenerator<NameIdType extends SAMLObject>public void setFormat(@Nonnull @NotEmpty
java.lang.String f)
f - format to set@Nullable public java.lang.String getIdPNameQualifier()
public void setIdPNameQualifier(@Nullable
java.lang.String qualifier)
If not set, and isOmitQualifiers() is false, then the value used will be derived from the IdP identity.
qualifier - qualifier to set@Nullable public java.lang.String getSPNameQualifier()
public void setSPNameQualifier(@Nullable
java.lang.String qualifier)
If not set, and isOmitQualifiers() is false, then the value used will be derived from the relying party
identity.
qualifier - qualifier to set@Nullable public java.lang.String getSPProvidedID()
public void setSPProvidedId(@Nullable
java.lang.String id)
id - value to setprotected void doInitialize()
throws net.shibboleth.utilities.java.support.component.ComponentInitializationException
doInitialize in class net.shibboleth.utilities.java.support.component.AbstractIdentifiedInitializableComponentnet.shibboleth.utilities.java.support.component.ComponentInitializationExceptionpublic boolean apply(@Nullable
ProfileRequestContext input)
apply in interface com.google.common.base.Predicate<ProfileRequestContext>@Nullable public NameIdType generate(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull @NotEmpty java.lang.String theFormat) throws SAMLException
generate in interface NameIdentifierGenerator<NameIdType extends SAMLObject>profileRequestContext - the current profile request contexttheFormat - the identifier format to generateSAMLException - if an error occurs generating an identifier@Nullable protected abstract NameIdType doGenerate(@Nonnull ProfileRequestContext profileRequestContext) throws SAMLException
profileRequestContext - current profile request contextSAMLException - if an error occurs@Nullable
protected java.lang.String getIdentifier(@Nonnull
ProfileRequestContext profileRequestContext)
throws SAMLException
doGenerate(ProfileRequestContext), and return the
identifier to be included as the value of the eventual element.profileRequestContext - current profile request contextSAMLException - if an error occurs@Nullable
protected java.lang.String getEffectiveIdPNameQualifier(@Nonnull
ProfileRequestContext profileRequestContext)
profileRequestContext - current profile context@Nullable
protected java.lang.String getEffectiveSPNameQualifier(@Nonnull
ProfileRequestContext profileRequestContext)
profileRequestContext - current profile context