http-server icon indicating copy to clipboard operation
http-server copied to clipboard

Cannot override changeOrigin proxy option

Open JensOlesen47 opened this issue 3 years ago • 4 comments

I am attempting to authenticate to a web application using SSO. The apache web server runs on localhost:8080, while the http-server runs on localhost:8443. The problem I'm experiencing is that http-server will rewrite the host header as localhost:8080. As a result, I can authenticate with the SSO server successfully, but I am redirected back to my web server at localhost:8080.

I expected to solve this problem by setting the changeOrigin option to false, but it isn't working as I'd expect it to work.

Environment Versions

  1. OS: Ubuntu 18
  2. Node version: 14.17.2
  3. http-server version: 14.1.1

Steps to reproduce

Run http-server with --proxy-options.changeOrigin false.

Expected result

The changeOrigin flag is true by default, but can be overridden with the above option.

Actual result

The changeOrigin flag is always set to true and the option is ignored. See lib/http-server.js:

proxy.web(req, res, {
        target: options.proxy,
        changeOrigin: true
}

Other information

I will open a PR if this behaviour is deemed to be a bug.

JensOlesen47 avatar Aug 26 '22 21:08 JensOlesen47

This issue has been inactive for 180 days

github-actions[bot] avatar Feb 23 '23 12:02 github-actions[bot]

I am having the same issue. Is this line the problem?

https://github.com/http-party/http-server/blob/8f7fcb08003952ec300874559690d0d75d241ffa/lib/http-server.js#L148

It seems to be overriding changeOrigin to true after our proxyOptions have been applied.

tingram-hp avatar Feb 28 '24 21:02 tingram-hp

Yep @tingram-hp that's the problem, I forked this repo to fix it, see https://github.com/Stack8/http-server and https://www.npmjs.com/package/s8-http-server

Note, I won't be maintaining that fork, but I don't think this repo is being maintained either.

JensOlesen47 avatar Feb 28 '24 21:02 JensOlesen47