Htpasswd accesses apache-compatible password files. Passwords are matched to a realm where they are valid. For security, the path for a password database should be stored outside of the paths available to the HTTP server.
Htpasswd is intended for use with WEBrick::HTTPAuth::BasicAuth.
To create an Htpasswd database with a single user:
htpasswd = WEBrick::HTTPAuth::Htpasswd.new 'my_password_file'
htpasswd.set_passwd 'my realm', 'username', 'password'
htpasswd.flush
Methods
- D
- E
- F
- G
- N
- R
- S
Included Modules
Class Public methods
new(path)
Link
Open a password database at path
Instance Public methods
delete_passwd(realm, user)
Link
Removes a password from the database for user
in
realm
.
each()
Link
Iterate passwords in the database.
flush(output=nil)
Link
Flush the password database. If output
is given the database
will be written there instead of to the original path.
get_passwd(realm, user, reload_db)
Link
Retrieves a password from the database for user
in
realm
. If reload_db
is true the database will be
reloaded first.
reload()
Link
Reload passwords from the database
# File lib/webrick/httpauth/htpasswd.rb, line 49 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