http-client-digest_auth

An implementation of RFC 2617 Digest Access Authentication http-client digest-authentication
0.4.0 Latest release released

HTTP::Client::DigestAuth

Build Status GitHub release License

An implementation of RFC 2617 - Digest Access Authentication. At this time this library does not drop in to HTTP::Client and can be used for with other HTTP clients.

crest uses this shard to provide Digest Access Authentication support out of the box.

In order to use http-client-digest_auth you'll need to perform some request wrangling on your own. See the class documentation at HTTP::Client::DigestAuth for an example.

Ported from Ruby's net-http-digest_auth gem.

Installation

Add this to your application's shard.yml:

dependencies:
  http-client-digest_auth:
    github: mamantoha/http-client-digest_auth

Usage

require "http/client"
require "uri"
require "http-client-digest_auth"

url = "https://httpbin.org/digest-auth/auth/admin/passwd/MD5"

uri = URI.parse(url)
uri.user = "admin"
uri.password = "passwd"

client = HTTP::Client.new(uri)

response = client.get(uri.full_path)
# response is a 401 response with a WWW-Authenticate header

www_authenticate = response.headers["WWW-Authenticate"]

digest_auth = HTTP::Client::DigestAuth.new
auth = digest_auth.auth_header(uri, www_authenticate, "GET")

http_headers = HTTP::Headers.new
http_headers["Authorization"] = auth

# re-issue request with Authorization
response = client.get(uri.full_path, http_headers)

Contributing

  1. Fork it (https://github.com/mamantoha/http-client-digest_auth/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

http-client-digest_auth:
  github: mamantoha/http-client-digest_auth
  version: ~> 0.4.0
License MIT
Crystal 0.34.0

Authors

Dependencies 0

Development Dependencies 0

Dependents 1

Last synced .
search fire star recently