mirror of
https://github.com/oauth2-proxy/oauth2-proxy.git
synced 2025-06-06 23:46:28 +02:00
Enable UseEncodedPath() for frontend mux
This allows urls with encoded characters (e.g.: /%2F/) to pass to the upstream mux instead of triggering a HTTP 301 from the frontend. Otherwise a /%2F/test/ will result in a HTTP 301 -> /test/
This commit is contained in:
parent
ccbb98acd9
commit
ae72beb24e
@ -265,7 +265,9 @@ func (p *OAuthProxy) setupServer(opts *options.Options) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *OAuthProxy) buildServeMux(proxyPrefix string) {
|
func (p *OAuthProxy) buildServeMux(proxyPrefix string) {
|
||||||
r := mux.NewRouter()
|
// Use the encoded path here so we can have the option to pass it on in the upstream mux.
|
||||||
|
// Otherwise something like /%2F/ would be redirected to / here already.
|
||||||
|
r := mux.NewRouter().UseEncodedPath()
|
||||||
// Everything served by the router must go through the preAuthChain first.
|
// Everything served by the router must go through the preAuthChain first.
|
||||||
r.Use(p.preAuthChain.Then)
|
r.Use(p.preAuthChain.Then)
|
||||||
|
|
||||||
|
@ -915,6 +915,15 @@ func TestUserInfoEndpointUnauthorizedOnNoCookieSetError(t *testing.T) {
|
|||||||
assert.Equal(t, http.StatusUnauthorized, test.rw.Code)
|
assert.Equal(t, http.StatusUnauthorized, test.rw.Code)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestEncodedUrlsStayEncoded(t *testing.T) {
|
||||||
|
encodeTest, err := NewSignInPageTest(false)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
code, _ := encodeTest.GetEndpoint("/%2F/test1/%2F/test2")
|
||||||
|
assert.Equal(t, 403, code)
|
||||||
|
}
|
||||||
|
|
||||||
func NewAuthOnlyEndpointTest(querystring string, modifiers ...OptionsModifier) (*ProcessCookieTest, error) {
|
func NewAuthOnlyEndpointTest(querystring string, modifiers ...OptionsModifier) (*ProcessCookieTest, error) {
|
||||||
pcTest, err := NewProcessCookieTestWithOptionsModifiers(modifiers...)
|
pcTest, err := NewProcessCookieTestWithOptionsModifiers(modifiers...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user