Skip to content

Cannot override changeOrigin proxy option #831

@JensOlesen47

Description

@JensOlesen47

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions