Skip to content
/ uncors Public

A simple dev HTTP/HTTPS reverse proxy for replacing CORS headers.

License

Notifications You must be signed in to change notification settings

evg4b/uncors

Repository files navigation

A simple dev HTTP/HTTPS proxy for replacing CORS headers.

Go version GitHub version License Coverage Go Report Card Reliability Rating Security Rating Lines of Code

Quick Install

Binary (Cross-platform)

Download the appropriate version for your platform from UNCORS releases page. Once downloaded, the binary can be run from anywhere. You don’t need to install it into a global location. This works well for shared hosts and other systems where you don’t have a privileged account.

Ideally, you should install it somewhere in your PATH for easy use. /usr/local/bin is the most probable location.

Docker

We currently offer images for Docker https://hub.docker.com/r/evg4b/uncors

Source

Prerequisite Tools

  • Git
  • Go (at least Go 1.11)

Fetch from GitHub

UNCORS uses the Go Modules support built into Go 1.11 to build. The easiest way to get started is to clone UNCORS source code in a directory outside of the GOPATH, as in the following example:

mkdir $HOME/src
cd $HOME/src
git clone https://github.com/evg4b/uncors.git
cd uncors
go install

If you are a Windows user, substitute the $HOME environment variable above with %USERPROFILE%.

Usage

./uncors --port 8080 --target 'https://github.com' --source 'http://localhost'

Parameters

  • --port - Local HTTP linthing port.
  • --target - Url with protocol for to the resource to be proxyed.
  • --source - Url with protocol for to the resource from which proxying will take place.

How it works

sequenceDiagram
    participant Client
    participant Uncors
    participant Server


    alt Handling OPTIONS queries 
        Client ->> Uncors: Access-Control-Request
        Uncors ->> Client: Allow-Control-Request
    end
    
    alt Handling Data queries 
      Client ->> Uncors: GET, POST, PUT... query
      Note over Uncors: Replacing url with target<br/> in headers and cookies
      Uncors-->>Server: Real GET, POST, PUT... query
      Server->>Uncors: Real responce
      Note over Uncors: Replacing url with source<br/> in headers and cookies
      Uncors-->>Client: Data responce
    end
Loading