class Net::IMAP::SASL::PlainAuthenticator
“PLAIN
” SASL 机制的身份验证器,在 RFC-4616 中指定。参见 Net::IMAP#authenticate
。
PLAIN
身份验证以明文形式发送密码。 RFC-3501 鼓励服务器在协商 TLS 之后禁用明文身份验证。 RFC-8314 建议对所有流量使用 TLS 1.2 或更高版本,并尽快弃用明文访问。PLAIN
可以通过 TLS 加密进行保护。
常量
- NULL
属性
authcid[R]
authzid[R]
授权身份:代表或以其名义行事的身份。身份形式是应用程序协议特定的。如果未提供或留空,服务器将从身份验证身份派生授权身份。服务器负责验证客户端的凭据,并验证与其身份验证身份关联的身份是否允许代表(或以其名义)授权身份行事。
例如,管理员或超级用户可能会担任另一个角色
imap.authenticate "PLAIN", "root", passwd, authzid: "user"
password[R]
与 username
匹配的密码或密码短语。
secret[R]
与 username
匹配的密码或密码短语。
公共类方法
new(username, password, authzid: nil, **) → authenticator 点击以切换源代码
new(username:, password:, authzid: nil, **) → authenticator
new(authcid:, password:, authzid: nil, **) → authenticator
为“PLAIN
” SASL 机制创建身份验证器。
由 Net::IMAP#authenticate
和其他客户端上的类似方法调用。
参数¶ ↑
任何其他关键字参数都将被忽略。
# File net-imap-0.5.4/lib/net/imap/sasl/plain_authenticator.rb, line 67 def initialize(user = nil, pass = nil, authcid: nil, secret: nil, username: nil, password: nil, authzid: nil, **) username ||= authcid || user or raise ArgumentError, "missing username (authcid)" password ||= secret || pass or raise ArgumentError, "missing password" raise ArgumentError, "username contains NULL" if username.include?(NULL) raise ArgumentError, "password contains NULL" if password.include?(NULL) raise ArgumentError, "authzid contains NULL" if authzid&.include?(NULL) @username = username @password = password @authzid = authzid @done = false end
公共实例方法
done?() 点击以切换源代码
当发送初始客户端响应时返回 true。
除非此方法返回 true,否则身份验证不应成功,但这不表示成功。
# File net-imap-0.5.4/lib/net/imap/sasl/plain_authenticator.rb, line 99 def done?; @done end
initial_response? → true 点击以切换源代码
PLAIN
可以发送初始客户端响应。
# File net-imap-0.5.4/lib/net/imap/sasl/plain_authenticator.rb, line 86 def initial_response?; true end
process(data) 点击以切换源代码
用客户端的凭据进行响应。
# File net-imap-0.5.4/lib/net/imap/sasl/plain_authenticator.rb, line 89 def process(data) return "#@authzid\0#@username\0#@password" ensure @done = true end