Class 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 Summary

      Constructors 
      Constructor Description
      WebAuthnCredentialProvider​(org.keycloak.models.KeycloakSession session, com.webauthn4j.converter.util.ObjectConverter objectConverter)  
    • Constructor Detail

      • WebAuthnCredentialProvider

        public WebAuthnCredentialProvider​(org.keycloak.models.KeycloakSession session,
                                          com.webauthn4j.converter.util.ObjectConverter objectConverter)
    • Method Detail

      • 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>
      • 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
      • 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
      • 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()