Package net.shibboleth.idp.saml.nameid.impl

# Class PersistentSAML2NameIDGenerator

java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
net.shibboleth.shared.component.AbstractIdentifiedInitializableComponent
net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent
org.opensaml.saml.common.profile.AbstractNameIdentifierGenerator<NameID>
org.opensaml.saml.saml2.profile.AbstractSAML2NameIDGenerator
net.shibboleth.idp.saml.nameid.AbstractSAML2NameIDGenerator
net.shibboleth.idp.saml.nameid.impl.PersistentSAML2NameIDGenerator

All Implemented Interfaces:
  `Predicate<ProfileRequestContext>`, `Component`, `DestructableComponent`, `IdentifiableComponent`, `IdentifiedComponent`, `InitializableComponent`, `FormatSpecificNameIdentifierGenerator<NameID>`, `NameIdentifierGenerator<NameID>`, `SAML2NameIDGenerator`

@ThreadSafeAfterInit public class PersistentSAML2NameIDGenerator extends AbstractSAML2NameIDGenerator
Generator for "persistent" Format `NameID` objects that provides a source/seed ID based on `IdPAttribute` data.

## Field Summary

Fields
Modifier and Type
Field
Description
`private Function<ProfileRequestContext,AttributeContext>`
`attributeContextLookupStrategy`
Strategy function to lookup AttributeContext.
`private List<String>`
`attributeSourceIds`
Attribute(s) to use as an identifier source.
`private DataSource`
`dataSource`
A DataSource to auto-provision a `JDBCPairwiseIdStore` instance.
`private final org.slf4j.Logger`
`log`
Class logger.
`private PairwiseIdStore`
`pidStore`
Store for IDs.
`private Function<ProfileRequestContext,SubjectContext>`
`subjectContextLookupStrategy`
Strategy function to lookup SubjectContext.
`private boolean`
`useUnfilteredAttributes`
Predicate to select whether to look at filtered or unfiltered attributes.

## Constructor Summary

Constructors
Constructor
Description
`PersistentSAML2NameIDGenerator()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doInitialize()`
`protected String`
`getIdentifier(ProfileRequestContext profileRequestContext)`
`void`
`setAttributeContextLookupStrategy(Function<ProfileRequestContext,AttributeContext> strategy)`
Set the lookup strategy to use to locate the `AttributeContext`.
`void`
`setAttributeSourceIds(List<String> ids)`
Set the attribute sources to pull from.
`void`
`setDataSource(DataSource source)`
Set a data source to inject into an auto-provisioned instance of `JDBCPairwiseIdStore` to use as the store.
`void`
`setPersistentIdStore(PairwiseIdStore store)`
Set a `PairwiseIdStore` to use.
`void`
`setSubjectContextLookupStrategy(Function<ProfileRequestContext,SubjectContext> strategy)`
Set the lookup strategy to use to locate the `SubjectContext`.
`void`
`setUseUnfilteredAttributes(boolean flag)`
Set whether to source the input attributes from the unfiltered set.

### Methods inherited from class net.shibboleth.idp.saml.nameid.AbstractSAML2NameIDGenerator

`getEffectiveSPNameQualifier, setRelyingPartyContextLookupStrategy, setRequestLookupStrategy`

### Methods inherited from class org.opensaml.saml.saml2.profile.AbstractSAML2NameIDGenerator

`doGenerate`

### Methods inherited from class org.opensaml.saml.common.profile.AbstractNameIdentifierGenerator

`generate, getDefaultIdPNameQualifierLookupStrategy, getDefaultSPNameQualifierLookupStrategy, getEffectiveIdPNameQualifier, getFormat, getIdPNameQualifier, getSPNameQualifier, getSPProvidedID, isOmitQualifiers, setActivationCondition, setDefaultIdPNameQualifierLookupStrategy, setDefaultSPNameQualifierLookupStrategy, setFormat, setIdPNameQualifier, setOmitQualifiers, setSPNameQualifier, setSPProvidedId, test`

### Methods inherited from class net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent

`setId`

### Methods inherited from class net.shibboleth.shared.component.AbstractIdentifiedInitializableComponent

`ensureId, getId, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException`

### Methods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent

`checkComponentActive, checkSetterPreconditions, 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.shared.component.IdentifiedComponent

`getId`

### Methods inherited from interface java.util.function.Predicate

`and, negate, or`

### Methods inherited from interface org.opensaml.saml.saml2.profile.SAML2NameIDGenerator

`generate`

## Field Details

### log

@Nonnull private final org.slf4j.Logger log
Class logger.

### subjectContextLookupStrategy

@Nonnull private Function<ProfileRequestContext,SubjectContext> subjectContextLookupStrategy
Strategy function to lookup SubjectContext.

### attributeContextLookupStrategy

@Nonnull private Function<ProfileRequestContext,AttributeContext> attributeContextLookupStrategy
Strategy function to lookup AttributeContext.

### attributeSourceIds

@Nonnull private List<String> attributeSourceIds
Attribute(s) to use as an identifier source.

### pidStore

@NonnullAfterInit private PairwiseIdStore pidStore
Store for IDs.

### dataSource

@Nullable private DataSource dataSource
A DataSource to auto-provision a `JDBCPairwiseIdStore` instance.

### useUnfilteredAttributes

private boolean useUnfilteredAttributes
Predicate to select whether to look at filtered or unfiltered attributes.

## Constructor Details

### PersistentSAML2NameIDGenerator

public PersistentSAML2NameIDGenerator()
Constructor.

## Method Details

### setSubjectContextLookupStrategy

public void setSubjectContextLookupStrategy(@Nonnull Function<ProfileRequestContext,SubjectContext> strategy)
Set the lookup strategy to use to locate the `SubjectContext`.

Parameters:
  `strategy` - lookup function to use

### setAttributeContextLookupStrategy

public void setAttributeContextLookupStrategy(@Nonnull Function<ProfileRequestContext,AttributeContext> strategy)
Set the lookup strategy to use to locate the `AttributeContext`.

Parameters:
  `strategy` - lookup function to use

### setAttributeSourceIds

public void setAttributeSourceIds(@Nonnull List<String> ids)
Set the attribute sources to pull from.

Parameters:
  `ids` - attribute IDs to pull from

### setPersistentIdStore

public void setPersistentIdStore(@Nullable PairwiseIdStore store)
Set a `PairwiseIdStore` to use.

Parameters:
  `store` - the id store

### setDataSource

public void setDataSource(@Nullable DataSource source)
Set a data source to inject into an auto-provisioned instance of `JDBCPairwiseIdStore` to use as the store.

Parameters:
  `source` - data source

### setUseUnfilteredAttributes

public void setUseUnfilteredAttributes(boolean flag)
Set whether to source the input attributes from the unfiltered set.

Defaults to true, since the input is not directly exposed.

Parameters:
  `flag` - flag to set

### doInitialize

protected void doInitialize() throws ComponentInitializationException

Overrides:
  `doInitialize` in class `AbstractIdentifiedInitializableComponent`
Throws:
  `ComponentInitializationException`

### getIdentifier

@Nullable protected String getIdentifier(@Nonnull ProfileRequestContext profileRequestContext) throws SAMLException

Overrides:
  `getIdentifier` in class `AbstractNameIdentifierGenerator<NameID>`
Throws:
  `SAMLException`