Class | WEBrick::HTTPAuth::Htdigest |
In: |
webrick/httpauth/htdigest.rb
|
Parent: | Object |
# File webrick/httpauth/htdigest.rb, line 19 def initialize(path) @path = path @mtime = Time.at(0) @digest = Hash.new @mutex = Mutex::new @auth_type = DigestAuth open(@path,"a").close unless File::exist?(@path) reload end
# File webrick/httpauth/htdigest.rb, line 75 def delete_passwd(realm, user) if hash = @digest[realm] hash.delete(user) end end
# File webrick/httpauth/htdigest.rb, line 81 def each @digest.keys.sort.each{|realm| hash = @digest[realm] hash.keys.sort.each{|user| yield([user, realm, hash[user]]) } } end
# File webrick/httpauth/htdigest.rb, line 47 def flush(output=nil) output ||= @path tmp = Tempfile.new("htpasswd", File::dirname(output)) begin each{|item| tmp.puts(item.join(":")) } tmp.close File::rename(tmp.path, output) rescue tmp.close(true) end end
# File webrick/httpauth/htdigest.rb, line 59 def get_passwd(realm, user, reload_db) reload() if reload_db if hash = @digest[realm] hash[user] end end
# File webrick/httpauth/htdigest.rb, line 29 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