make go-chef HTTP headers compliant with RFC 2616 (HTTP/1.1) and go1.6 #75
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
RFC 2616 § 4.2 specifies that HTTP headers cannot contain spaces. A space being included in the header is in violation of the HTTP/1.1 standard. Unfortunately, Go 1.6 introduced a change where they outright reject requests, before the your HTTP handler is invoked, if any header contains a space in the name:
This changeset alters the
SignRequest
function so that theHashed Path
header is no longer sent to the Chef Server. The Chef authentication documentation clearly indicates that this header is NOT required to be sent over HTTP as part of authentication. The value is, however, used as part of the generation of theX-Ops-Authorization
header.