diff --git a/pkg/apis/options/legacy_options.go b/pkg/apis/options/legacy_options.go index 157487a..a2256da 100644 --- a/pkg/apis/options/legacy_options.go +++ b/pkg/apis/options/legacy_options.go @@ -4,6 +4,7 @@ import ( "fmt" "net/url" "strconv" + "strings" "time" "github.com/oauth2-proxy/oauth2-proxy/pkg/logger" @@ -87,6 +88,8 @@ func (l *LegacyUpstreams) convert() (Upstreams, error) { if u.Fragment != "" { upstream.ID = u.Fragment upstream.Path = u.Fragment + // Trim the fragment from the end of the URI + upstream.URI = strings.SplitN(upstreamString, "#", 2)[0] } case "static": responseCode, err := strconv.Atoi(u.Host) diff --git a/pkg/apis/options/legacy_options_test.go b/pkg/apis/options/legacy_options_test.go index 5819e4b..80ad17b 100644 --- a/pkg/apis/options/legacy_options_test.go +++ b/pkg/apis/options/legacy_options_test.go @@ -21,7 +21,7 @@ var _ = Describe("Legacy Options", func() { legacyOpts.LegacyUpstreams.PassHostHeader = true legacyOpts.LegacyUpstreams.ProxyWebSockets = true legacyOpts.LegacyUpstreams.SSLUpstreamInsecureSkipVerify = true - legacyOpts.LegacyUpstreams.Upstreams = []string{"http://foo.bar/baz", "file://var/lib/website#/bar", "static://204"} + legacyOpts.LegacyUpstreams.Upstreams = []string{"http://foo.bar/baz", "file:///var/lib/website#/bar", "static://204"} truth := true staticCode := 204 @@ -38,7 +38,7 @@ var _ = Describe("Legacy Options", func() { { ID: "/bar", Path: "/bar", - URI: "file://var/lib/website#/bar", + URI: "file:///var/lib/website", FlushInterval: &flushInterval, InsecureSkipTLSVerify: true, PassHostHeader: &truth, @@ -100,11 +100,11 @@ var _ = Describe("Legacy Options", func() { FlushInterval: &flushInterval, } - validFileWithFragment := "file://var/lib/website#/bar" + validFileWithFragment := "file:///var/lib/website#/bar" validFileWithFragmentUpstream := Upstream{ ID: "/bar", Path: "/bar", - URI: validFileWithFragment, + URI: "file:///var/lib/website", InsecureSkipTLSVerify: skipVerify, PassHostHeader: &passHostHeader, ProxyWebSockets: &proxyWebSockets,