Class PublicKeyCredentialUserEntity

java.lang.Object
com.codename1.backend.security.webauthn.PublicKeyCredentialUserEntity

public final class PublicKeyCredentialUserEntity extends Object

A user as passkeys know them: the name they sign in with, and the user handle -- random bytes that stand for the account inside an authenticator, and that a sign-in without a user name hands back.

The handle is not the name and says nothing of it: an authenticator shows it to nobody, but stores it where anyone holding the device may read it. It is at most 64 bytes; this layer makes 32 random ones for a user who has none.

It is the principal of a WebAuthnAuthentication, so a controller may take it:

@GetMapping("/me")
String me(@AuthenticationPrincipal PublicKeyCredentialUserEntity user) {
    return user.getName();
}
  • Constructor Details

    • PublicKeyCredentialUserEntity

      public PublicKeyCredentialUserEntity(String name, byte[] id, String displayName)
      Parameters:
      name - the user's name, as the application's user store has it
      id - the user handle: 1 to 64 bytes
      displayName - what an authenticator shows; the name when null
  • Method Details

    • getName

      public String getName()
    • getId

      public byte[] getId()
      The user handle.
    • getDisplayName

      public String getDisplayName()
    • toString

      public String toString()
      Description copied from class: Object
      Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method. The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of: getClass().getName() + '@' + Integer.toHexString(hashCode())
      Overrides:
      toString in class Object