Merge pull request #989 from rassie/master
Adapt isAjax to support mimetype lists
This commit is contained in:
commit
a0d37518e0
@ -100,6 +100,7 @@
|
||||
- [#750](https://github.com/oauth2-proxy/oauth2-proxy/pull/750) ci: Migrate to Github Actions (@shinebayar-g)
|
||||
- [#829](https://github.com/oauth2-proxy/oauth2-proxy/pull/820) Rename test directory to testdata (@johejo)
|
||||
- [#819](https://github.com/oauth2-proxy/oauth2-proxy/pull/819) Improve CI (@johejo)
|
||||
- [#989](https://github.com/oauth2-proxy/oauth2-proxy/pull/989) Adapt isAjax to support mimetype lists (@rassie)
|
||||
|
||||
# v6.1.1
|
||||
|
||||
|
@ -1111,11 +1111,19 @@ func (p *OAuthProxy) addHeadersForProxying(rw http.ResponseWriter, req *http.Req
|
||||
func isAjax(req *http.Request) bool {
|
||||
acceptValues := req.Header.Values("Accept")
|
||||
const ajaxReq = applicationJSON
|
||||
for _, v := range acceptValues {
|
||||
if v == ajaxReq {
|
||||
// Iterate over multiple Accept headers, i.e.
|
||||
// Accept: application/json
|
||||
// Accept: text/plain
|
||||
for _, mimeTypes := range acceptValues {
|
||||
// Iterate over multiple mimetypes in a single header, i.e.
|
||||
// Accept: application/json, text/plain, */*
|
||||
for _, mimeType := range strings.Split(mimeTypes, ",") {
|
||||
mimeType = strings.TrimSpace(mimeType)
|
||||
if mimeType == ajaxReq {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
|
@ -1970,6 +1970,13 @@ func TestAjaxUnauthorizedRequest2(t *testing.T) {
|
||||
testAjaxUnauthorizedRequest(t, header)
|
||||
}
|
||||
|
||||
func TestAjaxUnauthorizedRequestAccept1(t *testing.T) {
|
||||
header := make(http.Header)
|
||||
header.Add("Accept", "application/json, text/plain, */*")
|
||||
|
||||
testAjaxUnauthorizedRequest(t, header)
|
||||
}
|
||||
|
||||
func TestAjaxForbiddendRequest(t *testing.T) {
|
||||
test, err := newAjaxRequestTest()
|
||||
if err != nil {
|
||||
|
Loading…
x
Reference in New Issue
Block a user