Class AddUserId
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.AbstractWebAuthnAction<WebAuthnRegistrationContext>
net.shibboleth.idp.plugin.authn.webauthn.admin.impl.AddUserId
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,ProfileAction,Aware,MessageSource,MessageSourceAware,Action
An action to generate or lookup a user.id (stored by an authenticator as the userHandle). This is used by the IdP to
map a public key credential to a users session map of public keys, and by the authenticator to map the IdP's ID
(RelyingParty ID) and the userHandle to a public key credential source (which contains the private key).
Used during the registration process, added to PublicKeyCredentialCreationOptions.
The user.id could contain some form of state if required, but must not contain retrievable PII.
The same user should have the same user.id. That is, a single user can have more than one registered credential.
- Event:
WebAuthnRegistrationEventIds.INVALID_REGISTRATION- Precondition:
ProfileRequestContext.getSubcontext(WebAuthnRegistrationContext.class) != null
- Postcondition:
- a user ID is added to the registration context
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final org.slf4j.LoggerClass logger.private WebAuthnCredentialRepositoryThe credential repository to use.private Function<ProfileRequestContext,byte[]> Strategy used to generate the user.id.private StringThe stashed username. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoExecute(ProfileRequestContext profileRequestContext, WebAuthnRegistrationContext context) Performs this WebAuthn authentication action using the supplied WebAuthn context.protected voidprotected booleandoPreExecute(ProfileRequestContext profileRequestContext, WebAuthnRegistrationContext context) Performs this authentication action's pre-execute step.voidsetUserIdGeneratorStrategy(Function<ProfileRequestContext, byte[]> strategy) Set the strategy used to generate the user.id.Methods inherited from class net.shibboleth.idp.plugin.authn.webauthn.impl.AbstractWebAuthnAction
doExecute, doPreExecute, enhancedCredentialRecord, getAaguidMetadata, getAaguidService, getAuthenticatorMetadata, getCredentialRepository, getFidoMetadataService, getWebAuthnClient, setAaguidService, setCredentialRepository, setFidoMetadataService, setWebAuthnClient, setWebAuthnContextLookupStrategyMethods inherited from class net.shibboleth.idp.profile.AbstractProfileAction
doExecute, execute, getBean, getBean, getMessage, getMessage, getMessage, getParameter, getParameter, getProfileContextLookupStrategy, getRequestContext, getResult, setMessageSource, setProfileContextLookupStrategyMethods inherited from class org.opensaml.profile.action.AbstractConditionalProfileAction
getActivationCondition, setActivationConditionMethods inherited from class org.opensaml.profile.action.AbstractProfileAction
doPostExecute, doPostExecute, ensureHttpServletRequest, ensureHttpServletResponse, execute, getHttpServletRequest, getHttpServletRequestSupplier, getHttpServletResponse, getHttpServletResponseSupplier, getLogPrefix, isPreExecuteCalled, setHttpServletRequestSupplier, setHttpServletResponseSupplierMethods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent
checkComponentActive, checkSetterPreconditions, destroy, doDestroy, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, initialize, isDestroyed, isInitializedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.shibboleth.shared.component.InitializableComponent
initialize, isInitialized
-
Field Details
-
log
@Nonnull private final org.slf4j.Logger logClass logger. -
userIdGeneratorStrategy
Strategy used to generate the user.id. -
username
The stashed username. -
repository
The credential repository to use.
-
-
Constructor Details
-
AddUserId
public AddUserId()Constructor.
-
-
Method Details
-
doInitialize
- Overrides:
doInitializein classAbstractWebAuthnAction<WebAuthnRegistrationContext>- Throws:
ComponentInitializationException
-
setUserIdGeneratorStrategy
Set the strategy used to generate the user.id.- Parameters:
strategy- the strategy
-
doPreExecute
protected boolean doPreExecute(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull WebAuthnRegistrationContext context) Performs this authentication action's pre-execute step. Default implementation just returns true.- Overrides:
doPreExecutein classAbstractWebAuthnAction<WebAuthnRegistrationContext>- Parameters:
profileRequestContext- the current IdP profile request contextcontext- the WebAuthn context- Returns:
- true iff execution should continue
-
doExecute
protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull WebAuthnRegistrationContext context) Performs this WebAuthn authentication action using the supplied WebAuthn context. Implementations should override this method.- Overrides:
doExecutein classAbstractWebAuthnAction<WebAuthnRegistrationContext>- Parameters:
profileRequestContext- the current IdP profile request contextcontext- the WebAuthn context
-