43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
# File 'lib/httpx/plugins/digest_authentication.rb', line 43
def send_requests(*requests)
requests.flat_map do |request|
digest = request.options.digest
if digest
probe_response = wrap { super(request).first }
if digest && !probe_response.is_a?(ErrorResponse) &&
probe_response.status == 401 && probe_response..key?("www-authenticate") &&
/Digest .*/.match?(probe_response.["www-authenticate"])
request.transition(:idle)
token = digest.(request, probe_response)
request.["authorization"] = "Digest #{token}"
super(request)
else
probe_response
end
else
super(request)
end
end
end
|