Class IdentityPasswordProvider

java.lang.Object
org.eclipse.jgit.transport.sshd.IdentityPasswordProvider
All Implemented Interfaces:
KeyPasswordProvider

public class IdentityPasswordProvider extends Object implements KeyPasswordProvider
Since:
5.2
  • Field Details

  • Constructor Details

  • Method Details

    • 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 invalid input: '<'= 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
    • getCredentialsProvider

      protected CredentialsProvider getCredentialsProvider()
      Retrieves the JGit CredentialsProvider to use for user interaction.
      Returns:
      the CredentialsProvider or null if none configured
      Since:
      5.10
    • 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

      protected boolean keyLoaded(URIish uri, IdentityPasswordProvider.State state, char[] password, Exception err) throws IOException, GeneralSecurityException
      Invoked to inform the password provider about the decoding result.
      Parameters:
      uri - identifying the key resource the key was attempted to be loaded from
      state - associated with this key
      password - the password that was attempted
      err - the attempt result - null for success
      Returns:
      how to proceed in case of error
      Throws:
      IOException
      GeneralSecurityException
    • 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