Class WebAuthnCredentialProvider

java.lang.Object
org.keycloak.credential.WebAuthnCredentialProvider
All Implemented Interfaces:
org.keycloak.credential.CredentialInputValidator, org.keycloak.credential.CredentialProvider<org.keycloak.models.credential.WebAuthnCredentialModel>, org.keycloak.provider.Provider
Direct Known Subclasses:
WebAuthnPasswordlessCredentialProvider

public class WebAuthnCredentialProvider extends Object implements org.keycloak.credential.CredentialProvider<org.keycloak.models.credential.WebAuthnCredentialModel>, org.keycloak.credential.CredentialInputValidator
Credential provider for WebAuthn 2-factor credential of the user
  • Constructor Details

    • WebAuthnCredentialProvider

      public WebAuthnCredentialProvider(org.keycloak.models.KeycloakSession session, WebAuthnMetadataService metadataService, com.webauthn4j.converter.util.ObjectConverter objectConverter)
  • Method Details

    • createCredential

      public org.keycloak.credential.CredentialModel createCredential(org.keycloak.models.RealmModel realm, org.keycloak.models.UserModel user, org.keycloak.models.credential.WebAuthnCredentialModel credentialModel)
      Specified by:
      createCredential in interface org.keycloak.credential.CredentialProvider<org.keycloak.models.credential.WebAuthnCredentialModel>
    • deleteCredential

      public boolean deleteCredential(org.keycloak.models.RealmModel realm, org.keycloak.models.UserModel user, String credentialId)
      Specified by:
      deleteCredential in interface org.keycloak.credential.CredentialProvider<org.keycloak.models.credential.WebAuthnCredentialModel>
    • getCredentialFromModel

      public org.keycloak.models.credential.WebAuthnCredentialModel getCredentialFromModel(org.keycloak.credential.CredentialModel model)
      Specified by:
      getCredentialFromModel in interface org.keycloak.credential.CredentialProvider<org.keycloak.models.credential.WebAuthnCredentialModel>
    • getCredentialForPresentationFromModel

      public org.keycloak.models.credential.WebAuthnCredentialModel getCredentialForPresentationFromModel(org.keycloak.credential.CredentialModel model)
      Specified by:
      getCredentialForPresentationFromModel in interface org.keycloak.credential.CredentialProvider<org.keycloak.models.credential.WebAuthnCredentialModel>
    • getCredentialModelFromCredentialInput

      public org.keycloak.models.credential.WebAuthnCredentialModel getCredentialModelFromCredentialInput(org.keycloak.credential.CredentialInput input, String userLabel)
      Convert WebAuthn credential input to the model, which can be saved in the persistent storage (DB)
      Parameters:
      input - should be typically WebAuthnCredentialModelInput
      userLabel - label for the credential
    • supportsCredentialType

      public boolean supportsCredentialType(String credentialType)
      Specified by:
      supportsCredentialType in interface org.keycloak.credential.CredentialInputValidator
      Specified by:
      supportsCredentialType in interface org.keycloak.credential.CredentialProvider<org.keycloak.models.credential.WebAuthnCredentialModel>
    • isConfiguredFor

      public boolean isConfiguredFor(org.keycloak.models.RealmModel realm, org.keycloak.models.UserModel user, String credentialType)
      Specified by:
      isConfiguredFor in interface org.keycloak.credential.CredentialInputValidator
    • isValid

      public boolean isValid(org.keycloak.models.RealmModel realm, org.keycloak.models.UserModel user, org.keycloak.credential.CredentialInput input)
      Specified by:
      isValid in interface org.keycloak.credential.CredentialInputValidator
    • getWebAuthnAuthenticationManager

      protected com.webauthn4j.WebAuthnAuthenticationManager getWebAuthnAuthenticationManager()
    • getWebAuthnPolicy

      protected org.keycloak.models.WebAuthnPolicy getWebAuthnPolicy()
    • getType

      public String getType()
      Specified by:
      getType in interface org.keycloak.credential.CredentialProvider<org.keycloak.models.credential.WebAuthnCredentialModel>
    • dumpCredentialModel

      public void dumpCredentialModel(org.keycloak.models.credential.WebAuthnCredentialModel credential, WebAuthnCredentialModelInput auth)
    • getCredentialTypeMetadata

      public org.keycloak.credential.CredentialTypeMetadata getCredentialTypeMetadata(org.keycloak.credential.CredentialTypeMetadataContext metadataContext)
      Specified by:
      getCredentialTypeMetadata in interface org.keycloak.credential.CredentialProvider<org.keycloak.models.credential.WebAuthnCredentialModel>
    • getKeycloakSession

      protected org.keycloak.models.KeycloakSession getKeycloakSession()
    • getCredentialMetadata

      public org.keycloak.credential.CredentialMetadata getCredentialMetadata(org.keycloak.models.credential.WebAuthnCredentialModel credentialModel, org.keycloak.credential.CredentialTypeMetadata credentialTypeMetadata)
      Specified by:
      getCredentialMetadata in interface org.keycloak.credential.CredentialProvider<org.keycloak.models.credential.WebAuthnCredentialModel>
    • getMetadataService

      public WebAuthnMetadataService getMetadataService()