Htdigest accesses apache-compatible digest password files. Passwords are matched to a realm where they are valid. For security, the path for a digest password database should be stored outside of the paths available to the HTTP server.
Htdigest is intended for use with WEBrick::HTTPAuth::DigestAuth and stores passwords using cryptographic hashes.
htpasswd = WEBrick::HTTPAuth::Htdigest.new 'my_password_file'
htpasswd.set_passwd 'my realm', 'username', 'password'
htpasswd.flush
- D
- E
- F
- G
- N
- R
- S
Open a digest password database at path
Removes a password from the database for user in
realm.
Iterate passwords in the database.
Flush the password database. If output is given the database
will be written there instead of to the original path.
# File lib/webrick/httpauth/htdigest.rb, line 72 def flush(output=nil) output ||= @path tmp = Tempfile.create("htpasswd", File::dirname(output)) renamed = false begin each{|item| tmp.puts(item.join(":")) } tmp.close File::rename(tmp.path, output) renamed = true ensure tmp.close if !tmp.closed? File.unlink(tmp.path) if !renamed end end
Retrieves a password from the database for user in
realm. If reload_db is true the database will be
reloaded first.
Reloads passwords from the database
# File lib/webrick/httpauth/htdigest.rb, line 50 def reload mtime = File::mtime(@path) if mtime > @mtime @digest.clear open(@path){|io| while line = io.gets line.chomp! user, realm, pass = line.split(/:/, 3) unless @digest[realm] @digest[realm] = Hash.new end @digest[realm][user] = pass end } @mtime = mtime end end
Sets a password in the database for user in realm
to pass.