86 lines
1.9 KiB
Plaintext
86 lines
1.9 KiB
Plaintext
module WEBrick
|
|
module HTTPAuth
|
|
class DigestAuth
|
|
@config: Hash[Symbol, untyped]
|
|
|
|
@domain: Array[String]?
|
|
|
|
@use_opaque: bool
|
|
|
|
@use_next_nonce: bool
|
|
|
|
@check_nc: bool
|
|
|
|
@use_auth_info_header: bool
|
|
|
|
@nonce_expire_period: Integer
|
|
|
|
@nonce_expire_delta: Integer
|
|
|
|
@internet_explorer_hack: bool
|
|
|
|
@h: singleton(Digest::Base)
|
|
|
|
@instance_key: String
|
|
|
|
@opaques: Hash[String, OpaqueInfo]
|
|
|
|
@last_nonce_expire: Time
|
|
|
|
@mutex: Thread::Mutex
|
|
|
|
include Authenticator
|
|
|
|
AuthScheme: String
|
|
|
|
class OpaqueInfo < Struct[untyped]
|
|
attr_accessor time(): Time
|
|
attr_accessor nonce(): String?
|
|
attr_accessor nc(): String
|
|
end
|
|
|
|
attr_reader algorithm: String?
|
|
|
|
attr_reader qop: Array[String]
|
|
|
|
def self.make_passwd: (String realm, String user, String pass) -> untyped
|
|
|
|
def initialize: (Hash[Symbol, untyped] config, ?Hash[Symbol, untyped] default) -> void
|
|
|
|
def authenticate: (HTTPRequest req, HTTPResponse res) -> void
|
|
|
|
def challenge: (HTTPRequest req, HTTPResponse res, ?bool stale) -> bot
|
|
|
|
private
|
|
|
|
MustParams: Array[String]
|
|
|
|
MustParamsAuth: Array[String]
|
|
|
|
def _authenticate: (HTTPRequest req, HTTPResponse res) -> (:nonce_is_stale | bool)
|
|
|
|
def split_param_value: (String string) -> Hash[String, String]
|
|
|
|
def generate_next_nonce: (HTTPRequest req) -> String
|
|
|
|
def check_nonce: (HTTPRequest req, Hash[String, String] auth_req) -> bool
|
|
|
|
def generate_opaque: (HTTPRequest req) -> String
|
|
|
|
def check_opaque: (OpaqueInfo opaque_struct, untyped req, Hash[String, String] auth_req) -> bool
|
|
|
|
def check_uri: (HTTPRequest req, Hash[String, String] auth_req) -> bool
|
|
|
|
def hexdigest: (*_ToS? args) -> String
|
|
end
|
|
|
|
class ProxyDigestAuth < DigestAuth
|
|
include ProxyAuthenticator
|
|
|
|
private
|
|
|
|
def check_uri: (HTTPRequest req, Hash[String, String] auth_req) -> true
|
|
end
|
|
end
|
|
end
|