http-client-digest_auth v0.6.0

An implementation of RFC 2617 Digest Access Authentication for Crystal

HTTP::Client::DigestAuth

Crystal CI 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

Repository

http-client-digest_auth

Owner
Statistic
  • 2
  • 0
  • 0
  • 2
  • 0
  • over 1 year ago
  • September 7, 2019
License

MIT License

Links
Synced at

Sat, 21 Dec 2024 15:30:04 GMT

Languages