-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Duplicate Authorization Bearer Header Fix #36811
Closed
Closed
Changes from 1 commit
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
ed5b427
[36810] Duplicate Authorization Bearer Header
sahuefficy 454612d
[36810] null check with headers
sahuefficy 7522517
[36810] Combining the flow control
sahuefficy 4692fbc
[36810] Replaced add with putSingle
sahuefficy 4ca667e
[36810] Duplicate Authorization Bearer Header
sahuefficy 6cb9a4e
Merge branch '36810' of https://github.com/sahuefficy/quarkus into 36810
sahuefficy File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sahuefficy Thanks, can it be simplified so that the header is not added but set ? I was expecting only change from
.add
to.set
(orput
). Your fix is correct but simply setting the header would be as cheap or even faster when the duplication situation is possibleThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The problem with set/put is that it would override a non-bearer scheme authorization header. Thats why add is the right thing to do. I have indeed pushed another commit that actually checks for null before streaming.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sahuefficy But this is what the filter's job is. One would not apply it to the REST client if this REST client wants to use one scheme for one request, then another scheme for another request. If this filter is applied to a given REST client then it is only
Authorization: Bearer
that must be producedThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sahuefficy Having such a code in this filter introduces an ambiguity as far as the token propagation is concerned, if the REST client suddenly has some other scheme in front of it then it is effectively an illegal state exception from this filter's point of view. IMHO this use case where a REST client instance varies the Authorization schemes is not practical, but, if it ever required, users can do a custom filter
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have got your point and have changed the check as well as add a putSingle.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @sahuefficy, but I think we should also drop the null check, as it leaves the same ambiguity open - if the header is already present - may be it is the basic scheme - now we need to decide if we want to report an error or not - but it is really not a decision that should be taken at this filter's level. I'm sorry this simple PR which is technically correct is still being reviewed :-), I do appreciate your time and patience. Please also squash the commits, thanks
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Now the PR has become pretty simple with the add replaced with putSingle.