summaryrefslogtreecommitdiff
path: root/pkg/prxy
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/prxy')
-rw-r--r--pkg/prxy/prxy.go43
-rw-r--r--pkg/prxy/prxy_test.go49
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)
- })
-}