new(config, default=Config::DigestAuth)
public
Creates a new
DigestAuth instance. Be sure to use the same DigestAuth instance for
multiple requests as it saves state between requests in order to perform
authentication.
See WEBrick::Config::DigestAuth for default configuration entries
You must supply the following configuration entries:
:Realm |
The name of the realm being protected.
|
:UserDB |
A database of usernames and passwords.
|
A WEBrick::HTTPAuth::Htdigest instance should be used.
Show source
def initialize(config, default=Config::DigestAuth)
check_init(config)
@config = default.dup.update(config)
@algorithm = @config[:Algorithm]
@domain = @config[:Domain]
@qop = @config[:Qop]
@use_opaque = @config[:UseOpaque]
@use_next_nonce = @config[:UseNextNonce]
@check_nc = @config[:CheckNc]
@use_auth_info_header = @config[:UseAuthenticationInfoHeader]
@nonce_expire_period = @config[:NonceExpirePeriod]
@nonce_expire_delta = @config[:NonceExpireDelta]
@internet_explorer_hack = @config[:InternetExplorerHack]
case @algorithm
when 'MD5','MD5-sess'
@h = Digest::MD5
when 'SHA1','SHA1-sess'
@h = Digest::SHA1
else
msg = format('Algorithm "%s" is not supported.', @algorithm)
raise ArgumentError.new(msg)
end
@instance_key = hexdigest(self.__id__, Time.now.to_i, Process.pid)
@opaques = {}
@last_nonce_expire = Time.now
@mutex = Mutex.new
end