# File webrick/httpauth/htpasswd.rb, line 72 def delete_passwd(realm, user) @passwd.delete(user) end
# File webrick/httpauth/htpasswd.rb, line 76 def each @passwd.keys.sort.each{|user| yield([user, @passwd[user]]) } end
# File webrick/httpauth/htpasswd.rb, line 51 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/htpasswd.rb, line 63 def get_passwd(realm, user, reload_db) reload() if reload_db @passwd[user] end
# File webrick/httpauth/htpasswd.rb, line 28 def reload mtime = File::mtime(@path) if mtime > @mtime @passwd.clear open(@path){|io| while line = io.gets line.chomp! case line when %r!\A[^:]+:[a-zA-Z0-9./]{13}\z! user, pass = line.split(":") when /:\$/, /:\{SHA\}/ raise NotImplementedError, 'MD5, SHA1 .htpasswd file not supported' else raise StandardError, 'bad .htpasswd file' end @passwd[user] = pass end } @mtime = mtime end end