Package io.vertx.reactivex.ext.auth.webauthn

## Class WebAuthn

- java.lang.Object
- - io.vertx.reactivex.ext.auth.authentication.AuthenticationProvider
  - - io.vertx.reactivex.ext.auth.webauthn.WebAuthn

-     public class WebAuthn
      extends AuthenticationProvider

  Factory interface for creating WebAuthN based `AuthenticationProvider` instances.

  NOTE: This class has been automatically generated from the `original` non RX-ified interface using Vert.x codegen.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static io.vertx.lang.rx.TypeArg<WebAuthn>` | `__TYPE_ARG` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `WebAuthn​(WebAuthn delegate)` |
    `WebAuthn​(Object delegate)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `WebAuthn` | `authenticatorFetcher​(Function<Authenticator,​Single<List<Authenticator>>> fetcher)` | Provide a that can fetch `Authenticator`s from a backend given the incomplete `Authenticator` argument.
    `WebAuthn` | `authenticatorFetcher​(java.util.function.Function<Authenticator,​Future<List<Authenticator>>> fetcher)` | Provide a that can fetch `Authenticator`s from a backend given the incomplete `Authenticator` argument.
    `WebAuthn` | `authenticatorUpdater​(Function<Authenticator,​Completable> updater)` | Provide a that can update or insert a `Authenticator`.
    `WebAuthn` | `authenticatorUpdater​(java.util.function.Function<Authenticator,​Future<Void>> updater)` | Provide a that can update or insert a `Authenticator`.
    `static WebAuthn` | `create​(Vertx vertx)` | Create a WebAuthN auth provider
    `static WebAuthn` | `create​(Vertx vertx, WebAuthnOptions options)` | Create a WebAuthN auth provider
    `Future<JsonObject>` | `createCredentialsOptions​(JsonObject user)` | Gets a challenge and any other parameters for the `navigator.credentials.create()` call.
    `boolean` | `equals​(Object o)` |
    `Future<JsonObject>` | `getCredentialsOptions​(String username)` | Creates an assertion challenge and any other parameters for the `navigator.credentials.get()` call.
    `WebAuthn` | `getDelegate()` |
    `int` | `hashCode()` |
    `MetaDataService` | `metaDataService()` | Getter to the instance FIDO2 Meta Data Service.
    `static WebAuthn` | `newInstance​(WebAuthn arg)` |
    `Single<JsonObject>` | `rxCreateCredentialsOptions​(JsonObject user)` | Gets a challenge and any other parameters for the `navigator.credentials.create()` call.
    `Single<JsonObject>` | `rxGetCredentialsOptions​(String username)` | Creates an assertion challenge and any other parameters for the `navigator.credentials.get()` call.
    `String` | `toString()` |

    - ### Methods inherited from class io.vertx.reactivex.ext.auth.authentication.AuthenticationProvider

      `authenticate, newInstance, rxAuthenticate`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### __TYPE_ARG

          public static final io.vertx.lang.rx.TypeArg<WebAuthn> __TYPE_ARG

  - ### Constructor Detail

    - #### WebAuthn

          public WebAuthn​(WebAuthn delegate)

    - #### WebAuthn

          public WebAuthn​(Object delegate)

  - ### Method Detail

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `AuthenticationProvider`

    - #### equals

          public boolean equals​(Object o)

      Overrides:
        `equals` in class `AuthenticationProvider`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `AuthenticationProvider`

    - #### getDelegate

          public WebAuthn getDelegate()

      Overrides:
        `getDelegate` in class `AuthenticationProvider`

    - #### create

          public static WebAuthn create​(Vertx vertx)

      Create a WebAuthN auth provider
      Parameters:
        `vertx` - the Vertx instance.
      Returns:
        the auth provider.

    - #### create

          public static WebAuthn create​(Vertx vertx,
                                        WebAuthnOptions options)

      Create a WebAuthN auth provider
      Parameters:
        `vertx` - the Vertx instance.
        `options` - the custom options to the provider.
      Returns:
        the auth provider.

    - #### createCredentialsOptions

          public Future<JsonObject> createCredentialsOptions​(JsonObject user)

      Gets a challenge and any other parameters for the `navigator.credentials.create()` call.

      The object being returned is described here https://w3c.github.io/webauthn/#dictdef-publickeycredentialcreationoptions

      Parameters:
        `user` - - the user object with name and optionally displayName and icon
      Returns:
        a future notified with the encoded make credentials request

    - #### rxCreateCredentialsOptions

          public Single<JsonObject> rxCreateCredentialsOptions​(JsonObject user)

      Gets a challenge and any other parameters for the `navigator.credentials.create()` call.

      The object being returned is described here https://w3c.github.io/webauthn/#dictdef-publickeycredentialcreationoptions

      Parameters:
        `user` - - the user object with name and optionally displayName and icon
      Returns:
        a future notified with the encoded make credentials request

    - #### getCredentialsOptions

          public Future<JsonObject> getCredentialsOptions​(String username)

      Creates an assertion challenge and any other parameters for the `navigator.credentials.get()` call. If the auth provider is configured with `RequireResidentKey` and the username is null then the generated assertion will be a RK assertion (Usernameless).

      The object being returned is described here https://w3c.github.io/webauthn/#dictdef-publickeycredentialcreationoptions

      Parameters:
        `username` - the unique user identified
      Returns:
        a future notified with the server encoded get assertion request

    - #### rxGetCredentialsOptions

          public Single<JsonObject> rxGetCredentialsOptions​(String username)

      Creates an assertion challenge and any other parameters for the `navigator.credentials.get()` call. If the auth provider is configured with `RequireResidentKey` and the username is null then the generated assertion will be a RK assertion (Usernameless).

      The object being returned is described here https://w3c.github.io/webauthn/#dictdef-publickeycredentialcreationoptions

      Parameters:
        `username` - the unique user identified
      Returns:
        a future notified with the server encoded get assertion request

    - #### authenticatorFetcher

          public WebAuthn authenticatorFetcher​(java.util.function.Function<Authenticator,​Future<List<Authenticator>>> fetcher)

      Provide a that can fetch `Authenticator`s from a backend given the incomplete `Authenticator` argument.

      The implementation must consider the following fields exclusively, while performing the lookup:

      - `Authenticator`
      - `Authenticator` ()}

      It may return more than 1 result, for example when a user can be identified using different modalities. To signal that a user is not allowed/present on the system, a failure should be returned, not `null`.

      The function signature is as follows:

      `(Authenticator) -> Future>>`

      - `Authenticator` the incomplete authenticator data to lookup.
      - async result with a list of authenticators.
      Parameters:
        `fetcher` - fetcher function.
      Returns:
        fluent self.

    - #### authenticatorFetcher

          public WebAuthn authenticatorFetcher​(Function<Authenticator,​Single<List<Authenticator>>> fetcher)

      Provide a that can fetch `Authenticator`s from a backend given the incomplete `Authenticator` argument.

      The implementation must consider the following fields exclusively, while performing the lookup:

      - `Authenticator`
      - `Authenticator` ()}

      It may return more than 1 result, for example when a user can be identified using different modalities. To signal that a user is not allowed/present on the system, a failure should be returned, not `null`.

      The function signature is as follows:

      `(Authenticator) -> Future>>`

      - `Authenticator` the incomplete authenticator data to lookup.
      - async result with a list of authenticators.
      Parameters:
        `fetcher` - fetcher function.
      Returns:
        fluent self.

    - #### authenticatorUpdater

          public WebAuthn authenticatorUpdater​(java.util.function.Function<Authenticator,​Future<Void>> updater)

      Provide a that can update or insert a `Authenticator`. The function should store a given authenticator to a persistence storage.

      When an authenticator is already present, this method must at least update `Authenticator`, and is not required to perform any other update.

      For new authenticators, the whole object data must be persisted.

      The function signature is as follows:

      `(Authenticator) -> Future`

      - `Authenticator` the authenticator data to update.
      - async result of the operation.
      Parameters:
        `updater` - updater function.
      Returns:
        fluent self.

    - #### authenticatorUpdater

          public WebAuthn authenticatorUpdater​(Function<Authenticator,​Completable> updater)

      Provide a that can update or insert a `Authenticator`. The function should store a given authenticator to a persistence storage.

      When an authenticator is already present, this method must at least update `Authenticator`, and is not required to perform any other update.

      For new authenticators, the whole object data must be persisted.

      The function signature is as follows:

      `(Authenticator) -> Future`

      - `Authenticator` the authenticator data to update.
      - async result of the operation.
      Parameters:
        `updater` - updater function.
      Returns:
        fluent self.

    - #### metaDataService

          public MetaDataService metaDataService()

      Getter to the instance FIDO2 Meta Data Service.
      Returns:
        the MDS instance.

    - #### newInstance

          public static WebAuthn newInstance​(WebAuthn arg)