In Files

  • webrick/httpauth.rb
  • webrick/httpauth/authenticator.rb
  • webrick/httpauth/basicauth.rb
  • webrick/httpauth/digestauth.rb
  • webrick/httpauth/htdigest.rb
  • webrick/httpauth/htgroup.rb
  • webrick/httpauth/htpasswd.rb
  • webrick/httpauth/userdb.rb

WEBrick::HTTPAuth

HTTPAuth provides both basic and digest authentication.

To enable authentication for requests in WEBrick you will need a user database and an authenticator. To start, here’s an Htpasswd database for use with a DigestAuth authenticator:

config = { :Realm => 'DigestAuth example realm' }

htpasswd = WEBrick::HTTPAuth::Htpasswd.new 'my_password_file'
htpasswd.auth_type = WEBrick::HTTPAuth::DigestAuth
htpasswd.set_passwd config[:Realm], 'username', 'password'
htpasswd.flush

The :Realm is used to provide different access to different groups across several resources on a server. Typically you’ll need only one realm for a server.

This database can be used to create an authenticator:

config[:UserDB] = htpasswd

digest_auth = WEBrick::HTTPAuth::DigestAuth.new config

To authenticate a request call authenticate with a request and response object in a servlet:

def do_GET req, res
  @authenticator.authenticate req, res
end

For digest authentication the authenticator must not be created every request, it must be passed in as an option via WEBrick::HTTPServer#mount.

Public Instance Methods

basic_auth(req, res, realm) click to toggle source

Simple wrapper for providing basic authentication for a request. When called with a request req, response res, authentication realm and block the block will be called with a username and password. If the block returns true the request is allowed to continue, otherwise an HTTPStatus::Unauthorized error is raised.

 
               # File webrick/httpauth.rb, line 78
def basic_auth(req, res, realm, &block) # :yield: username, password
  _basic_auth(req, res, realm, "Authorization", "WWW-Authenticate",
              HTTPStatus::Unauthorized, block)
end
            
proxy_basic_auth(req, res, realm) click to toggle source

Simple wrapper for providing basic authentication for a proxied request. When called with a request req, response res, authentication realm and block the block will be called with a username and password. If the block returns true the request is allowed to continue, otherwise an HTTPStatus::ProxyAuthenticationRequired error is raised.

 
               # File webrick/httpauth.rb, line 90
def proxy_basic_auth(req, res, realm, &block) # :yield: username, password
  _basic_auth(req, res, realm, "Proxy-Authorization", "Proxy-Authenticate",
              HTTPStatus::ProxyAuthenticationRequired, block)
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.

blog comments powered by Disqus