Interface HotpAuth

  • All Superinterfaces:
    AuthenticationProvider

    public interface HotpAuth
    extends AuthenticationProvider
    An extension of AuthProvider which uses the one time passwords based on counter to perform authentication.
    Author:
    Dmitry Novikov
    • Method Detail

      • authenticatorFetcher

        HotpAuth authenticatorFetcher​(java.util.function.Function<String,​Future<Authenticator>> fetcher)
        Provide a Function that can fetch Authenticators from a backend given an identifier argument.

        The function signature is as follows:

        (id) -> Future<Authenticator>

        • id the identifier to lookup.
        • Future async result with a authenticator.
        Parameters:
        fetcher - fetcher function.
        Returns:
        fluent self.
      • authenticatorUpdater

        HotpAuth authenticatorUpdater​(java.util.function.Function<Authenticator,​Future<Void>> updater)
        Provide a Function 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.getCounter(), 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<Void>

        Parameters:
        updater - updater function.
        Returns:
        fluent self.
      • createAuthenticator

        Future<Authenticator> createAuthenticator​(String id,
                                                  OtpKey otpKey)
        Creating authenticator from user id and key.
        Parameters:
        id - id user.
        otpKey - key of user used for auth.
        Returns:
        Authenticator an object containing all the necessary information to authenticate a user.
      • generateUri

        String generateUri​(OtpKey otpKey,
                           String issuer,
                           String user,
                           String label)
        Creating URI for register in key in user device.
        Parameters:
        otpKey - user key.
        issuer - issuer of key.
        user - display name of user account.
        label - the label to identify which account a key is associated with.
        Returns:
        uri containing the key.
      • generateUri

        default String generateUri​(OtpKey otpKey,
                                   String issuer,
                                   String user)
        Creating URI for register in key in user device.
        Parameters:
        otpKey - user key.
        issuer - issuer of key.
        user - display name of user account.
        Returns:
        uri containing the key.
      • generateUri

        default String generateUri​(OtpKey otpKey,
                                   String label)
        Creating URI for register in key in user device.
        Parameters:
        otpKey - user key.
        label - the label to identify which account a key is associated with.
        Returns:
        uri containing the key.
      • create

        static HotpAuth create()
        Creates an instance of HotpAuth.
        Returns:
        the created instance of HotpAuth.
      • create

        static HotpAuth create​(HotpAuthOptions hotpAuthOptions)
        Creates an instance of HotpAuth.
        Parameters:
        hotpAuthOptions - the config.
        Returns:
        the created instance of HotpAuth.