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.
The httpclient library used is very conservative when it comes to status code handling. According to RFC7231, only HEAD and GET requests should be automatically redirected. Others like POST should required user interaction (e.g. a browser dialog window).
However it is possible to customize redirect strategy to override this behavior and there's even a more Lax strategy..aptly named LaxRedirectStrategy. This strategy will only redirect HEAD/GET/DELETE/POST, but not PUT.
This PR adds an option to enable LaxRedirectStrategy. Logstash plugins that rely on this mixin will have the ability to set
lax_redirects => true
when using POST/DELETE methods.To test this, instruct a local logstash to use this a local copy of this repo by editing the logstash's Gemfile:
With an endpoint that has a 307 redirect:
Then use a pipeline that does a POST:
The sinatra app will show either 1 or 2 requests from Logstash depending on
lax_redirects
being false or true, respectively.