Class: HrrRbSsh::Authentication::Method::KeyboardInteractive

Inherits:
HrrRbSsh::Authentication::Method show all
Defined in:
lib/hrr_rb_ssh/authentication/method/keyboard_interactive.rb,
lib/hrr_rb_ssh/authentication/method/keyboard_interactive/context.rb,
lib/hrr_rb_ssh/authentication/method/keyboard_interactive/info_request.rb,
lib/hrr_rb_ssh/authentication/method/keyboard_interactive/info_response.rb

Defined Under Namespace

Classes: Context, InfoRequest, InfoResponse

Constant Summary collapse

NAME =
'keyboard-interactive'
PREFERENCE =
30

Instance Method Summary collapse

Methods included from SubclassWithPreferenceListable

#[], #inherited, #list_preferred, #list_supported

Constructor Details

#initialize(transport, options) ⇒ KeyboardInteractive

Returns a new instance of KeyboardInteractive.



13
14
15
16
17
# File 'lib/hrr_rb_ssh/authentication/method/keyboard_interactive.rb', line 13

def initialize transport, options
  @logger = Logger.new(self.class.name)
  @transport = transport
  @authenticator = options.fetch( 'authentication_keyboard_interactive_authenticator', Authenticator.new { false } )
end

Instance Method Details

#authenticate(userauth_request_message) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/hrr_rb_ssh/authentication/method/keyboard_interactive.rb', line 19

def authenticate userauth_request_message
  @logger.info { "authenticate" }
  @logger.debug { "userauth request: " + userauth_request_message.inspect }
  username = userauth_request_message[:'user name']
  submethods = userauth_request_message[:'submethods']
  context = Context.new(@transport, username, submethods)
  @authenticator.authenticate context
end