Class IdentityPasswordProvider

    • Constructor Detail

    • Method Detail

      • setAttempts

        public void setAttempts​(int numberOfPasswordPrompts)
        Description copied from interface: KeyPasswordProvider
        Define the maximum number of attempts to get a passphrase that should be attempted for one identity resource through this provider.
        Specified by:
        setAttempts in interface KeyPasswordProvider
        Parameters:
        numberOfPasswordPrompts - number of times to ask for a passphrase; IllegalArgumentException may be thrown if <= 0
      • getAttempts

        public int getAttempts()
        Description copied from interface: KeyPasswordProvider
        Gets the maximum number of attempts to get a passphrase that should be attempted for one identity resource through this provider. The default return 1.
        Specified by:
        getAttempts in interface KeyPasswordProvider
        Returns:
        the number of times to ask for a passphrase; should be >= 1.
      • getPassphrase

        public char[] getPassphrase​(URIish uri,
                                    int attempt)
                             throws IOException
        Description copied from interface: KeyPasswordProvider
        Obtains a passphrase to use to decrypt an ecrypted private key. Returning null or an empty array will skip this key. To cancel completely, the operation should raise CancellationException.
        Specified by:
        getPassphrase in interface KeyPasswordProvider
        Parameters:
        uri - identifying the key resource that is being attempted to be loaded
        attempt - the number of previous attempts to get a passphrase; >= 0
        Returns:
        the passphrase
        Throws:
        IOException - if no password can be obtained
      • getPassword

        protected char[] getPassword​(URIish uri,
                                     int attempt,
                                     @NonNull
                                     IdentityPasswordProvider.State state)
                              throws IOException
        Retrieves a password to decrypt a private key.
        Parameters:
        uri - identifying the resource to obtain a password for
        attempt - number of previous attempts to get a passphrase
        state - encapsulating state information about attempts to get the password
        Returns:
        the password, or null or the empty string if none available.
        Throws:
        IOException - if an error occurs
      • getPassword

        protected char[] getPassword​(URIish uri,
                                     String message)
        Obtains the passphrase/password for an encrypted private key via the configured CredentialsProvider.
        Parameters:
        uri - identifying the resource to obtain a password for
        message - optional message text to display; may be null or empty if none
        Returns:
        the password entered, or null if no CredentialsProvider is configured or none was entered
        Throws:
        CancellationException - if the user canceled the operation
        Since:
        5.10
      • cancelAuthentication

        protected void cancelAuthentication()
        Cancels the authentication process. Called by getPassword(URIish, String) when the user interaction has been canceled. If this throws a CancellationException, the authentication process is aborted; otherwise it may continue with the next configured authentication mechanism, if any.

        This default implementation always throws a CancellationException.

        Throws:
        CancellationException - always
        Since:
        5.10
      • keyLoaded

        public boolean keyLoaded​(URIish uri,
                                 int attempt,
                                 Exception error)
                          throws IOException,
                                 GeneralSecurityException
        Description copied from interface: KeyPasswordProvider
        Invoked after a key has been loaded. If this raises an exception, the original error is lost unless it is attached to that exception.
        Specified by:
        keyLoaded in interface KeyPasswordProvider
        Parameters:
        uri - identifying the key resource the key was attempted to be loaded from
        attempt - the number of times KeyPasswordProvider.getPassphrase(URIish, int) had been called; zero indicates that uri refers to a non-encrypted key
        error - null if the key was loaded successfully; otherwise an exception indicating why the key could not be loaded
        Returns:
        true to re-try again; false to re-raise the error exception; Ignored if the key was loaded successfully, i.e., if error == null.
        Throws:
        IOException
        GeneralSecurityException