Package net.shibboleth.idp.plugin.authn.webauthn.admin.impl

# Class PopulateWebAuthnRegistrationContext

java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
org.opensaml.profile.action.AbstractProfileAction
org.opensaml.profile.action.AbstractConditionalProfileAction
net.shibboleth.idp.profile.AbstractProfileAction
net.shibboleth.idp.plugin.authn.webauthn.admin.impl.PopulateWebAuthnRegistrationContext

All Implemented Interfaces:
  `Component`, `DestructableComponent`, `InitializableComponent`, `ProfileAction`, `Aware`, `MessageSource`, `MessageSourceAware`, `Action`

public class PopulateWebAuthnRegistrationContext extends AbstractProfileAction
An action to create (or lookup) the `WebAuthnRegistrationContext` and populate with the username found from the lookup strategy.

Event:
  `EventIds.PROCEED_EVENT_ID`, `EventIds.INVALID_PROFILE_CTX`
Postcondition:
  a `WebAuthnRegistrationContext` is created and the username is populated.

## Field Summary

Fields
Modifier and Type
Field
Description
`private final org.slf4j.Logger`
`log`
Class logger.
`private Predicate<ProfileRequestContext>`
`removeExistingRegistrationContext`
Predicate to determine if we should remove any existing registration context.
`private Function<ProfileRequestContext,String>`
`usernameLookupStrategy`
Lookup strategy to determine the username to extract and register WebAuthn credentials for.
`private Predicate<ProfileRequestContext>`
`usernameRequiredPredicate`
Is the username required?
`private Function<ProfileRequestContext,WebAuthnRegistrationContext>`
`webAuthnRegistrationContextCreationStrategy`
Strategy used to locate or create the `WebAuthnRegistrationContext` to populate.

## Constructor Summary

Constructors
Constructor
Description
`PopulateWebAuthnRegistrationContext()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doExecute(ProfileRequestContext profileRequestContext)`
`void`
`setRemoveExistingRegistrationContext(boolean flag)`
Set a flag to determine if an existing registration context should be removed.
`void`
`setRemoveExistingRegistrationContextPredicate(Predicate<ProfileRequestContext> predicate)`
Set a strategy to determine if an existing registration context should be removed.
`void`
`setUsernameLookupStrategy(Function<ProfileRequestContext,String> strategy)`
Set the lookup strategy to find the username.
`void`
`setUsernameRequired(boolean flag)`
Set a flag to determine if the username is required or not.
`void`
`setUsernameRequiredPredicate(Predicate<ProfileRequestContext> predicate)`
Set a strategy to determine if the username is required or not.
`void`
`setWebAuthnRegistrationContextCreationStrategy(Function<ProfileRequestContext,WebAuthnRegistrationContext> strategy)`
Set the strategy used to lookup or create the WebAuthn registration context.

### Methods inherited from class net.shibboleth.idp.profile.AbstractProfileAction

`doExecute, execute, getBean, getBean, getMessage, getMessage, getMessage, getParameter, getParameter, getProfileContextLookupStrategy, getRequestContext, getResult, setMessageSource, setProfileContextLookupStrategy`

### Methods inherited from class org.opensaml.profile.action.AbstractConditionalProfileAction

`doPreExecute, getActivationCondition, setActivationCondition`

### Methods inherited from class org.opensaml.profile.action.AbstractProfileAction

`doPostExecute, doPostExecute, ensureHttpServletRequest, ensureHttpServletResponse, execute, getHttpServletRequest, getHttpServletRequestSupplier, getHttpServletResponse, getHttpServletResponseSupplier, getLogPrefix, isPreExecuteCalled, setHttpServletRequestSupplier, setHttpServletResponseSupplier`

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

`checkComponentActive, checkSetterPreconditions, destroy, doDestroy, doInitialize, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, 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.InitializableComponent

`initialize, isInitialized`

## Field Details

### log

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

### webAuthnRegistrationContextCreationStrategy

@Nonnull private Function<ProfileRequestContext,WebAuthnRegistrationContext> webAuthnRegistrationContextCreationStrategy
Strategy used to locate or create the `WebAuthnRegistrationContext` to populate.

### usernameLookupStrategy

@Nonnull private Function<ProfileRequestContext,String> usernameLookupStrategy
Lookup strategy to determine the username to extract and register WebAuthn credentials for.

### usernameRequiredPredicate

@Nonnull private Predicate<ProfileRequestContext> usernameRequiredPredicate
Is the username required?

### removeExistingRegistrationContext

@Nonnull private Predicate<ProfileRequestContext> removeExistingRegistrationContext
Predicate to determine if we should remove any existing registration context. Default is false.

## Constructor Details

### PopulateWebAuthnRegistrationContext

public PopulateWebAuthnRegistrationContext()
Constructor.

## Method Details

### setUsernameRequired

public void setUsernameRequired(boolean flag)
Set a flag to determine if the username is required or not.

Parameters:
  `flag` - is the username required?

### setUsernameRequiredPredicate

public void setUsernameRequiredPredicate(@Nonnull Predicate<ProfileRequestContext> predicate)
Set a strategy to determine if the username is required or not.

Parameters:
  `predicate` - the predicate to set.

### setRemoveExistingRegistrationContext

public void setRemoveExistingRegistrationContext(boolean flag)
Set a flag to determine if an existing registration context should be removed.

Parameters:
  `flag` - should an existing registration context be removed?

### setRemoveExistingRegistrationContextPredicate

public void setRemoveExistingRegistrationContextPredicate(@Nonnull Predicate<ProfileRequestContext> predicate)
Set a strategy to determine if an existing registration context should be removed.

Parameters:
  `predicate` - the predicate to set.

### setWebAuthnRegistrationContextCreationStrategy

public void setWebAuthnRegistrationContextCreationStrategy(@Nonnull Function<ProfileRequestContext,WebAuthnRegistrationContext> strategy)
Set the strategy used to lookup or create the WebAuthn registration context.

Parameters:
  `strategy` - The strategy to set.

### setUsernameLookupStrategy

public void setUsernameLookupStrategy(@Nonnull Function<ProfileRequestContext,String> strategy)
Set the lookup strategy to find the username.

Parameters:
  `strategy` - lookup strategy

### doExecute

protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext)

Overrides:
  `doExecute` in class `AbstractProfileAction`