Change error type for redirect parsing errors (#1649)
* Change error type for redirect parsing errors This changes the error type returned when the proxy fails to parse the redirect target to be a 400 error instead of a 500 error. As far as I can tell, the only way that this can fail is a failure to parse the properties of the request to identity the redirect target. This indicates that the user has sent a malformed request, and so should result in a 400 rather than a 500. I've added a test to exercise this, based on a real work example. * Update changelog Co-authored-by: Joel Speed <Joel.speed@hotmail.co.uk>
This commit is contained in:
parent
086b869945
commit
743c344fdc
|
|
@ -39,6 +39,7 @@ If you are using an architecture specific tag (ex: v7.2.1-arm64) you should move
|
||||||
- [#1286](https://github.com/oauth2-proxy/oauth2-proxy/pull/1286) Add the `allowed_email_domains` and the `allowed_groups` on the `auth_request` + support standard wildcard char for validation with sub-domain and email-domain. (@w3st3ry @armandpicard)
|
- [#1286](https://github.com/oauth2-proxy/oauth2-proxy/pull/1286) Add the `allowed_email_domains` and the `allowed_groups` on the `auth_request` + support standard wildcard char for validation with sub-domain and email-domain. (@w3st3ry @armandpicard)
|
||||||
- [#1361](https://github.com/oauth2-proxy/oauth2-proxy/pull/1541) PKCE Code Challenge Support - RFC-7636 (@braunsonm)
|
- [#1361](https://github.com/oauth2-proxy/oauth2-proxy/pull/1541) PKCE Code Challenge Support - RFC-7636 (@braunsonm)
|
||||||
- [#1594](https://github.com/oauth2-proxy/oauth2-proxy/pull/1594) Release ARMv8 docker images (@braunsonm)
|
- [#1594](https://github.com/oauth2-proxy/oauth2-proxy/pull/1594) Release ARMv8 docker images (@braunsonm)
|
||||||
|
- [#1649](https://github.com/oauth2-proxy/oauth2-proxy/pull/1649) Return a 400 instead of a 500 when a request contains an invalid redirect target (@niksko)
|
||||||
- [#1638](https://github.com/oauth2-proxy/oauth2-proxy/pull/1638) Implement configurable upstream timeout (@jacksgt)
|
- [#1638](https://github.com/oauth2-proxy/oauth2-proxy/pull/1638) Implement configurable upstream timeout (@jacksgt)
|
||||||
|
|
||||||
# V7.2.1
|
# V7.2.1
|
||||||
|
|
|
||||||
|
|
@ -714,7 +714,7 @@ func (p *OAuthProxy) doOAuthStart(rw http.ResponseWriter, req *http.Request, ove
|
||||||
appRedirect, err := p.appDirector.GetRedirect(req)
|
appRedirect, err := p.appDirector.GetRedirect(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("Error obtaining application redirect: %v", err)
|
logger.Errorf("Error obtaining application redirect: %v", err)
|
||||||
p.ErrorPage(rw, req, http.StatusInternalServerError, err.Error())
|
p.ErrorPage(rw, req, http.StatusBadRequest, err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -678,6 +678,17 @@ func TestSignInPageIncludesTargetRedirect(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSignInPageInvalidQueryStringReturnsBadRequest(t *testing.T) {
|
||||||
|
sipTest, err := NewSignInPageTest(true)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
const endpoint = "/?q=%va"
|
||||||
|
|
||||||
|
code, _ := sipTest.GetEndpoint(endpoint)
|
||||||
|
assert.Equal(t, 400, code)
|
||||||
|
}
|
||||||
|
|
||||||
func TestSignInPageDirectAccessRedirectsToRoot(t *testing.T) {
|
func TestSignInPageDirectAccessRedirectsToRoot(t *testing.T) {
|
||||||
sipTest, err := NewSignInPageTest(false)
|
sipTest, err := NewSignInPageTest(false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue