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

# Class ExtractUsernameFromRegistrationForm

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.impl.AbstractWebAuthnExtractionAction
net.shibboleth.idp.plugin.authn.webauthn.admin.impl.ExtractUsernameFromRegistrationForm

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

public class ExtractUsernameFromRegistrationForm extends AbstractWebAuthnExtractionAction
An action to populate a username into the `BaseWebAuthnContext`.

Event:
  `AuthnEventIds.UNKNOWN_USERNAME`
Precondition:

      ProfileRequestContext.getSubcontext(BaseWebAuthnContext.class) != null

Postcondition:

      BaseWebAuthnContext.getUsername() == null

## Field Summary

Fields
Modifier and Type
Field
Description
`private final org.slf4j.Logger`
`log`
Class logger.
`private String`
`usernameFieldName`
Form parameter name that carries the username.
`private BaseWebAuthnContext`
`webAuthnContext`
Context to operate on.
`private Function<ProfileRequestContext,BaseWebAuthnContext>`
`webAuthnContextLookupStrategy`
Strategy used to locate the `BaseWebAuthnContext` to operate on.

## Constructor Summary

Constructors
Constructor
Description
`ExtractUsernameFromRegistrationForm()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doExecute(ProfileRequestContext profileRequestContext)`
`protected boolean`
`doPreExecute(ProfileRequestContext profileRequestContext)`
`private String`
`getUsernameFromForm()`
Gets the username from a form submission.
`private String`
`processUsername(ProfileRequestContext profileRequestContext)`
Gets the username from a form submission and apply transformations to it.
`void`
`setUsernameFieldName(String name)`
Sets the name of the form field that carries the username.
`void`
`setWebAuthnContextLookupStrategy(Function<ProfileRequestContext,BaseWebAuthnContext> strategy)`
Set the strategy used to locate the `BaseWebAuthnContext` to operate on.

### Methods inherited from class net.shibboleth.idp.plugin.authn.webauthn.impl.AbstractWebAuthnExtractionAction

`applyTransforms, setLowercase, setTransforms, setTrim, setUppercase`

### 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

`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.

### webAuthnContextLookupStrategy

@Nonnull private Function<ProfileRequestContext,BaseWebAuthnContext> webAuthnContextLookupStrategy
Strategy used to locate the `BaseWebAuthnContext` to operate on.

### usernameFieldName

@Nonnull @NotEmpty private String usernameFieldName
Form parameter name that carries the username.

### webAuthnContext

@NonnullBeforeExec private BaseWebAuthnContext webAuthnContext
Context to operate on.

## Constructor Details

### ExtractUsernameFromRegistrationForm

public ExtractUsernameFromRegistrationForm()
Constructor.

## Method Details

### setWebAuthnContextLookupStrategy

public void setWebAuthnContextLookupStrategy(@Nonnull Function<ProfileRequestContext,BaseWebAuthnContext> strategy)
Set the strategy used to locate the `BaseWebAuthnContext` to operate on.

Parameters:
  `strategy` - lookup strategy

### setUsernameFieldName

public void setUsernameFieldName(@Nonnull String name)
Sets the name of the form field that carries the username.

Parameters:
  `name` - field name

### doPreExecute

protected boolean doPreExecute(@Nonnull ProfileRequestContext profileRequestContext)

Overrides:
  `doPreExecute` in class `AbstractConditionalProfileAction`

### doExecute

protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext)

Overrides:
  `doExecute` in class `AbstractProfileAction`

### getUsernameFromForm

@Nullable private String getUsernameFromForm()
Gets the username from a form submission.

Returns:
  the raw submitted username

### processUsername

@Nullable private String processUsername(@Nonnull ProfileRequestContext profileRequestContext)
Gets the username from a form submission and apply transformations to it.

Parameters:
  `profileRequestContext` - profile request context
Returns:
  submitted username, after applying any configured transforms