Skip to content
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

Don't forward proto if we receive the header #131

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

gonfva
Copy link

@gonfva gonfva commented Jan 30, 2018

This change is a bit more controversial than the previous one. Feel free to decline if it doesn't suit.

When upgrading from version 1.7 to version 1.10, we found the X-Forwarded-Proto header was no longer being honoured when passing through the proxy. The header was being replaced.

For X-Forwarded-For, the behaviour was easier since we can add the IP to the list. However my understanding is that X-Forwarded-Proto it is not a list. We could disable forwardip, or just ignore current protocol if we have a header.

If we receive a header for X-Forwarded-For and we have the parameter forwardIP, we add the IP of this machine to the list of IPs. However for X-Forwarded-Proto it is not a list. We send the proto of the existing request (if forwardIP is enabled).

This change honors the header if we receive it
@@ -446,6 +446,10 @@ private void setXForwardedForHeader(HttpServletRequest servletRequest,

String protoHeaderName = "X-Forwarded-Proto";
String protoHeader = servletRequest.getScheme();
String existingProtoHeader = servletRequest.getHeader(protoHeaderName);
if (existingProtoHeader != null) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks fine. Please add a comment that this header is not a list.

@dsmiley
Copy link
Collaborator

dsmiley commented Nov 18, 2018

Can you confirm this PR is still valid? I can commit it.

@dsmiley
Copy link
Collaborator

dsmiley commented Sep 27, 2020

Ping

@gonfva
Copy link
Author

gonfva commented Nov 16, 2020

I'm sorry for the (VERY!) late reply. We use the modified code in a forked version, but we haven't keep up with most recent versions and we're moving away from the code that uses this library.
I could try and rebase the code to make it more recent, but apart from the test I wouldn't know if this would still work.
Apologies.

@dsmiley
Copy link
Collaborator

dsmiley commented Nov 18, 2020

I understand; I'm a lazy steward here :-)
I'll let this PR be until someone else can comment further on its efficacy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants