class Net::IMAP::SASL::LoginAuthenticator - net-imap: Ruby Standard Library Documentation

# class Net::IMAP::SASL::LoginAuthenticator

Authenticator for the “`LOGIN`” SASL mechanism. See `Net::IMAP#authenticate`.

`LOGIN` authentication sends the password in cleartext. RFC3501 encourages servers to disable cleartext authentication until after TLS has been negotiated. RFC8314 recommends TLS version 1.2 or greater be used for all traffic, and deprecate cleartext access ASAP. `LOGIN` can be secured by TLS encryption.

## Deprecated¶ ↑

The SASL mechanisms registry marks “LOGIN” as obsoleted in favor of “PLAIN”. It is included here for compatibility with existing servers. See draft-murchison-sasl-login for both specification and deprecation.

### Constants

STATE_DONE
STATE_PASSWORD
STATE_USER

### Public Class Methods

new(user = nil, pass = nil, authcid: nil, username: nil, password: nil, secret: nil, warn_deprecation: true, **) click to toggle source

    # File net-imap-0.5.4/lib/net/imap/sasl/login_authenticator.rb, line 26
    def initialize(user = nil, pass = nil,
                   authcid: nil, username: nil,
                   password: nil, secret: nil,
                   warn_deprecation: true,
                   **)
      if warn_deprecation
        warn "WARNING: LOGIN SASL mechanism is deprecated. Use PLAIN instead.",
             category: :deprecated
      end
      @user = authcid || username || user
      @password = password || secret || pass
      @state = STATE_USER
    end

### Public Instance Methods

done?() click to toggle source

    # File net-imap-0.5.4/lib/net/imap/sasl/login_authenticator.rb, line 55
    def done?; @state == STATE_DONE end

initial_response?() click to toggle source

    # File net-imap-0.5.4/lib/net/imap/sasl/login_authenticator.rb, line 40
    def initial_response?; false end

process(data) click to toggle source

    # File net-imap-0.5.4/lib/net/imap/sasl/login_authenticator.rb, line 42
    def process(data)
      case @state
      when STATE_USER
        @state = STATE_PASSWORD
        return @user
      when STATE_PASSWORD
        @state = STATE_DONE
        return @password
      when STATE_DONE
        raise ResponseParseError, data
      end
    end