diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-25 15:13:14 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-25 15:13:14 +0000 |
commit | d0233291bc8a5068e52c69c210e5979e5324b5bc (patch) | |
tree | 7d9459449c33792c63eeb7baa071e76352e0baab /trunk/lib/webrick/httpauth/htpasswd.rb | |
parent | 0dc342de848a642ecce8db697b8fecd83a63e117 (diff) | |
parent | 72eaacaa15256ab95c3b52ea386f88586fb9da40 (diff) |
re-adding tag v1_9_0_4 as an alias of trunk@18848v1_9_0_4
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_9_0_4@18849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'trunk/lib/webrick/httpauth/htpasswd.rb')
-rw-r--r-- | trunk/lib/webrick/httpauth/htpasswd.rb | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/trunk/lib/webrick/httpauth/htpasswd.rb b/trunk/lib/webrick/httpauth/htpasswd.rb deleted file mode 100644 index 8a058861d3..0000000000 --- a/trunk/lib/webrick/httpauth/htpasswd.rb +++ /dev/null @@ -1,83 +0,0 @@ -# -# httpauth/htpasswd -- Apache compatible htpasswd file -# -# Author: IPR -- Internet Programming with Ruby -- writers -# Copyright (c) 2003 Internet Programming with Ruby writers. All rights -# reserved. -# -# $IPR: htpasswd.rb,v 1.4 2003/07/22 19:20:45 gotoyuzo Exp $ - -require 'webrick/httpauth/userdb' -require 'webrick/httpauth/basicauth' -require 'tempfile' - -module WEBrick - module HTTPAuth - class Htpasswd - include UserDB - - def initialize(path) - @path = path - @mtime = Time.at(0) - @passwd = Hash.new - @auth_type = BasicAuth - open(@path,"a").close unless File::exist?(@path) - reload - end - - 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 - - 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 - - def get_passwd(realm, user, reload_db) - reload() if reload_db - @passwd[user] - end - - def set_passwd(realm, user, pass) - @passwd[user] = make_passwd(realm, user, pass) - end - - def delete_passwd(realm, user) - @passwd.delete(user) - end - - def each - @passwd.keys.sort.each{|user| - yield([user, @passwd[user]]) - } - end - end - end -end |