|
1 | 1 | package auth
|
2 | 2 |
|
3 | 3 | import (
|
| 4 | + "cmp" |
4 | 5 | "compress/flate"
|
5 | 6 | "crypto/rsa"
|
6 | 7 | "crypto/x509"
|
@@ -718,6 +719,7 @@ func TestOIDCSetup(t *testing.T) {
|
718 | 719 | hostname string
|
719 | 720 | filter string
|
720 | 721 | queries []string
|
| 722 | + cookies []*http.Cookie |
721 | 723 | expected int
|
722 | 724 | expectRequest string
|
723 | 725 | expectNoCookies bool
|
@@ -872,11 +874,20 @@ func TestOIDCSetup(t *testing.T) {
|
872 | 874 | filter: `oauthOidcUserInfo("{{ .OIDCServerURL }}", "valid-client", "mysec", "{{ .RedirectURL }}", "", "")`,
|
873 | 875 | expected: 200,
|
874 | 876 | expectCookieName: "skipperOauthOidc",
|
| 877 | + }, { |
| 878 | + msg: "cookies should be forwarded", |
| 879 | + hostname: "skipper.test", |
| 880 | + filter: `oauthOidcUserInfo("{{ .OIDCServerURL }}", "valid-client", "mysec", "{{ .RedirectURL }}", "", "")`, |
| 881 | + cookies: []*http.Cookie{{Name: "please-forward", Value: "me", Domain: "skipper.test", MaxAge: 7200}}, |
| 882 | + expected: 200, |
| 883 | + expectRequest: "please-forward=me", |
| 884 | + expectCookieDomain: "skipper.test", |
875 | 885 | }} {
|
876 | 886 | t.Run(tc.msg, func(t *testing.T) {
|
877 | 887 | backend := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
878 | 888 | requestDump, _ := httputil.DumpRequest(r, false)
|
879 | 889 | assert.Contains(t, string(requestDump), tc.expectRequest, "expected request not fulfilled")
|
| 890 | + assert.NotContains(t, string(requestDump), cmp.Or(tc.expectCookieName, oauthOidcCookieName), "oidc cookie should be dropped") |
880 | 891 | w.Write([]byte("OK"))
|
881 | 892 | }))
|
882 | 893 | defer backend.Close()
|
@@ -963,6 +974,10 @@ func TestOIDCSetup(t *testing.T) {
|
963 | 974 | Jar: newInsecureCookieJar(),
|
964 | 975 | }
|
965 | 976 |
|
| 977 | + for _, c := range tc.cookies { |
| 978 | + client.Jar.SetCookies(reqURL, []*http.Cookie{c}) |
| 979 | + } |
| 980 | + |
966 | 981 | // trigger OpenID Connect Authorization Code Flow
|
967 | 982 | resp, err := client.Do(req)
|
968 | 983 | if err != nil {
|
|
0 commit comments