diff options
Diffstat (limited to 'pkg/prxy')
| -rw-r--r-- | pkg/prxy/prxy.go | 43 | ||||
| -rw-r--r-- | pkg/prxy/prxy_test.go | 49 |
2 files changed, 0 insertions, 92 deletions
diff --git a/pkg/prxy/prxy.go b/pkg/prxy/prxy.go deleted file mode 100644 index 43565bd3..00000000 --- a/pkg/prxy/prxy.go +++ /dev/null @@ -1,43 +0,0 @@ -package prxy - -import ( - "fmt" - "net" - "net/http" - "net/http/httputil" - "net/url" - - "github.com/xlgmokha/x/pkg/log" - "github.com/xlgmokha/x/pkg/x" -) - -func New(routes map[string]string) http.Handler { - mapped := map[string]*url.URL{} - for source, destination := range routes { - mapped[source] = x.Must(url.Parse(destination)) - } - - return &httputil.ReverseProxy{ - Rewrite: func(r *httputil.ProxyRequest) { - host, _, err := net.SplitHostPort(r.In.Host) - if err != nil { - log.WithFields(r.In.Context(), log.Fields{"error": err}) - return - } - - destination := mapped[host] - r.SetXForwarded() - r.SetURL(destination) - }, - Transport: http.DefaultTransport, - FlushInterval: -1, - ErrorLog: nil, - ModifyResponse: func(r *http.Response) error { - r.Header.Add("Via", fmt.Sprintf("%v gtwy", r.Proto)) - return nil - }, - ErrorHandler: func(w http.ResponseWriter, r *http.Request, err error) { - log.WithFields(r.Context(), log.Fields{"error": err}) - }, - } -} diff --git a/pkg/prxy/prxy_test.go b/pkg/prxy/prxy_test.go deleted file mode 100644 index 6f37974e..00000000 --- a/pkg/prxy/prxy_test.go +++ /dev/null @@ -1,49 +0,0 @@ -package prxy - -import ( - "net/http" - "net/http/httptest" - "net/url" - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "github.com/xlgmokha/x/pkg/x" - "gitlab.com/mokhax/spike/pkg/test" -) - -func TestProxy(t *testing.T) { - t.Run("http://idp.test", func(t *testing.T) { - var lastIdPRequest *http.Request - var lastUiRequest *http.Request - - idp := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - lastIdPRequest = r - w.WriteHeader(http.StatusOK) - })) - defer idp.Close() - - ui := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - lastUiRequest = r - w.WriteHeader(http.StatusTeapot) - })) - defer ui.Close() - - subject := New(map[string]string{ - "idp.test": idp.URL, - "ui.test": ui.URL, - }) - - r, w := test.RequestResponse("GET", "http://idp.test:8080/saml/new") - - subject.ServeHTTP(w, r) - - url := x.Must(url.Parse(idp.URL)) - - assert.Nil(t, lastUiRequest) - assert.Equal(t, http.StatusOK, w.Code) - - require.NotNil(t, lastIdPRequest) - assert.Equal(t, url.Host, lastIdPRequest.Host) - }) -} |
