Extended maintenance of Ruby 1.9.3 ended on February 23, 2015. Read more
Htgroup accesses apache-compatible group files. Htgroup can be used to provide group-based authentication for users. Currently Htgroup is not directly integrated with any authenticators in WEBrick. For security, the path for a digest password database should be stored outside of the paths available to the HTTP server.
Example:
htgroup = WEBrick::HTTPAuth::Htgroup.new 'my_group_file' htgroup.add 'superheroes', %w[spiderman batman] htgroup.members('superheroes').include? 'magneto' # => false
Add an Array of members
to group
# File webrick/httpauth/htgroup.rb, line 88 def add(group, members) @group[group] = members(group) | members end
Flush the group database. If output
is given the database
will be written there instead of to the original path.
# File webrick/httpauth/htgroup.rb, line 63 def flush(output=nil) output ||= @path tmp = Tempfile.new("htgroup", File::dirname(output)) begin @group.keys.sort.each{|group| tmp.puts(format("%s: %s", group, self.members(group).join(" "))) } tmp.close File::rename(tmp.path, output) rescue tmp.close(true) end end
Retrieve the list of members from group
# File webrick/httpauth/htgroup.rb, line 80 def members(group) reload @group[group] || [] end
Reload groups from the database
# File webrick/httpauth/htgroup.rb, line 45 def reload if (mtime = File::mtime(@path)) > @mtime @group.clear open(@path){|io| while line = io.gets line.chomp! group, members = line.split(/:\s*/) @group[group] = members.split(/\s+/) end } @mtime = mtime end end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.