Interface UserInteraction


public interface UserInteraction
Interface used by the ssh client to communicate with the end user.
Author:
Apache MINA SSHD Project
See Also:
  • Field Details

  • Method Details

    • isInteractionAllowed

      default boolean isInteractionAllowed(ClientSession session)
      Parameters:
      session - The ClientSession
      Returns:
      true if user interaction allowed for this session (default)
    • serverVersionInfo

      default void serverVersionInfo(ClientSession session, List<String> lines)
      Called if the server sent any extra information beyond the standard version line
      Parameters:
      session - The ClientSession through which this information was received
      lines - The sent extra lines - without the server version
      See Also:
    • welcome

      default void welcome(ClientSession session, String banner, String lang)
      Displays the welcome banner to the user.
      Parameters:
      session - The ClientSession through which the banner was received
      banner - The welcome banner
      lang - The banner language code - may be empty
    • interactive

      String[] interactive(ClientSession session, String name, String instruction, String lang, String[] prompt, boolean[] echo)
      Invoked when "keyboard-interactive" authentication mechanism is used in order to provide responses for the server's challenges (a.k.a. prompts)
      Parameters:
      session - The ClientSession through which the request was received
      name - The interaction name (may be empty)
      instruction - The instruction (may be empty)
      lang - The language for the data (may be empty)
      prompt - The prompts to be displayed (may be empty)
      echo - For each prompt whether to echo the user's response
      Returns:
      The replies - Note: the protocol states that the number of replies should be exactly the same as the number of prompts, however we do not enforce it since it is defined as the server's job to check and manage this violation.
    • getUpdatedPassword

      String getUpdatedPassword(ClientSession session, String prompt, String lang)
      Invoked when the server returns an SSH_MSG_USERAUTH_PASSWD_CHANGEREQ response indicating that the password should be changed - e.g., expired or not strong enough (as per the server's policy).
      Parameters:
      session - The ClientSession through which the request was received
      prompt - The server's prompt (may be empty)
      lang - The prompt's language (may be empty)
      Returns:
      The password to use - if null/empty then no updated password was provided - thus failing the authentication via passwords (Note: authentication might still succeed via some other means - be it other passwords, public keys, etc...)
    • resolveAuthPasswordAttempt

      default String resolveAuthPasswordAttempt(ClientSession session) throws Exception
      Invoked during password authentication when no more pre-registered passwords are available
      Parameters:
      session - The ClientSession through which the request was received
      Returns:
      The password to use - null signals no more passwords available
      Throws:
      Exception - if failed to handle the request - Note: may cause session termination
    • resolveAuthPublicKeyIdentityAttempt

      default KeyPair resolveAuthPublicKeyIdentityAttempt(ClientSession session) throws Exception
      Invoked during public key authentication when no more pre-registered keys are available
      Parameters:
      session - The ClientSession through which the request was received
      Returns:
      The KeyPair to use - null signals no more keys available
      Throws:
      Exception - if failed to handle the request - Note: may cause session termination
    • findPromptComponentLastPosition

      static int findPromptComponentLastPosition(String prompt, String tokensList)
      Parameters:
      prompt - The user interaction prompt
      tokensList - A comma-separated list of tokens whose last index is prompt is sought.
      Returns:
      The position of any token in the prompt - negative if not found