# 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 %\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