git.iko.soy/typeable/oauth2-proxy
on master help sign in
chore(deps): Updated to ginkgo v2 (#2459)

* chore(deps): Updated to ginkgo v2 * fix basic auth test suite cleanup * fix redis store tests * add changelog entry --------- Co-authored-by: Jan Larwig <jan@larwig.com>

commit343bd61ebbe86b42771c02b580e3b7ad2f496990 authorKoen van Zuijlen <8818390+kvanzuijlen@users.noreply.github.com> dateThu 18 Jul 2024, 22:41 (2 years ago) parent211c605
88 files changed+337−401
CHANGELOG.md+1 go.mod+5−2 go.sum+1−12 main_suite_test.go+1−1 main_test.go+1−2 oauthproxy_test.go+12−9 pkg/apis/middleware/middleware_suite_test.go+1−1 pkg/apis/middleware/scope_test.go+1−1 pkg/apis/options/common_test.go+1−2 pkg/apis/options/legacy_options_test.go+1−2 pkg/apis/options/load_test.go+1−2 pkg/apis/options/options_suite_test.go+1−1 pkg/apis/options/testutil/options_matcher_test.go+1−1 pkg/apis/options/util/util_suite_test.go+1−1 pkg/apis/options/util/util_test.go+1−1 pkg/app/pagewriter/error_page_test.go+1−1 pkg/app/pagewriter/pagewriter_suite_test.go+1−1 pkg/app/pagewriter/pagewriter_test.go+1−2 pkg/app/pagewriter/sign_in_page_test.go+1−2 pkg/app/pagewriter/static_pages_test.go+1−1 pkg/app/pagewriter/templates_test.go+1−1 pkg/app/redirect/director_test.go+12−12 pkg/app/redirect/pagewriter_suite_test.go+1−1 pkg/app/redirect/validator_test.go+1−2 pkg/authentication/basic/basic_suite_test.go+1−1 pkg/authentication/basic/htpasswd_test.go+12−10 pkg/clock/clock_suite_test.go+1−1 pkg/clock/clock_test.go+1−1 pkg/cookies/cookies_suite_test.go+1−1 pkg/cookies/cookies_test.go+1−2 pkg/cookies/csrf_per_request_test.go+1−1 pkg/cookies/csrf_test.go+1−1 pkg/header/header_suite_test.go+1−1 pkg/header/injector_test.go+1−2 pkg/http/http_suite_test.go+1−1 pkg/http/server_group_test.go+1−1 pkg/http/server_test.go+1−2 pkg/middleware/basic_session_test.go+1−2 pkg/middleware/headers_test.go+1−2 pkg/middleware/healthcheck_test.go+1−2 pkg/middleware/jwt_session_test.go+1−2 pkg/middleware/metrics_test.go+1−2 pkg/middleware/middleware_suite_test.go+1−1 pkg/middleware/readynesscheck_test.go+1−2 pkg/middleware/redirect_to_https_test.go+1−2 pkg/middleware/request_logger_test.go+1−2 pkg/middleware/scope_test.go+1−1 pkg/middleware/session_utils_test.go+1−2 pkg/middleware/stored_session_test.go+1−2 pkg/providers/oidc/oidc_suite_test.go+1−1 pkg/providers/oidc/provider_test.go+1−2 pkg/providers/oidc/provider_verifier_test.go+1−2 pkg/providers/oidc/verifier_test.go+1−1 pkg/providers/util/claim_extractor_test.go+1−2 pkg/providers/util/util_suite_test.go+1−1 pkg/requests/builder_test.go+1−1 pkg/requests/requests_suite_test.go+1−1 pkg/requests/result_test.go+1−2 pkg/requests/util/util_suite_test.go+1−1 pkg/requests/util/util_test.go+1−1 pkg/sessions/cookie/session_store_test.go+1−1 pkg/sessions/persistence/manager_test.go+1−1 pkg/sessions/persistence/persistence_suite_test.go+1−1 pkg/sessions/persistence/ticket_test.go+1−2 pkg/sessions/redis/client_test.go+1−1 pkg/sessions/redis/redis_store_test.go+11−236 pkg/sessions/redis/redis_store_tls_test.go+169 pkg/sessions/redis/redis_test.go+35−2 pkg/sessions/session_store_test.go+1−1 pkg/sessions/tests/session_store_tests.go+1−1 pkg/upstream/file_test.go+1−2 pkg/upstream/http_test.go+1−2 pkg/upstream/proxy_test.go+1−2 pkg/upstream/rewrite_test.go+1−2 pkg/upstream/static_test.go+1−2 pkg/upstream/upstream_suite_test.go+1−1 pkg/validation/allowlist_test.go+1−2 pkg/validation/common_test.go+1−2 pkg/validation/header_test.go+1−2 pkg/validation/providers_test.go+1−2 pkg/validation/sessions_test.go+1−2 pkg/validation/upstreams_test.go+1−2 pkg/validation/validation_suite_test.go+1−1 providers/adfs_test.go+1−2 providers/gitlab_test.go+1−2 providers/keycloak_oidc_test.go+1−1 providers/keycloak_test.go+1−2 providers/providers_suite_test.go+1−1
CHANGELOG.md+1
@@ -12,6 +12,7 @@
1212- [#4917](https://github.com/oauth2-proxy/oauth2-proxy/pull/4917) Upgraded all modules to the latest version (@pierluigilenoci)
1313- [#2570](https://github.com/oauth2-proxy/oauth2-proxy/pull/2570) Set default user agent to oauth2-proxy/$version (from default Golang one)
1414- [#2674](https://github.com/oauth2-proxy/oauth2-proxy/pull/2674) docs: additional notes about available claims for HeaderValue (@vegetablest)
15+- [#2459](https://github.com/oauth2-proxy/oauth2-proxy/pull/2459) chore(deps): Updated to ginkgo v2 (@kvanzuijlen, @tuunit)
1516
1617# V7.6.0
1718
go.mod+5−2
@@ -24,7 +24,7 @@ require (
2424 github.com/oauth2-proxy/mockoidc v0.0.0-20240214162133-caebfff84d25
2525 github.com/oauth2-proxy/tools/reference-gen v0.0.0-20220223111546-d3b50d1a591a
2626 github.com/ohler55/ojg v1.22.0
27− github.com/onsi/ginkgo v1.16.5
27+ github.com/onsi/ginkgo/v2 v2.17.2
2828 github.com/onsi/gomega v1.33.1
2929 github.com/pierrec/lz4/v4 v4.1.21
3030 github.com/prometheus/client_golang v1.19.1
@@ -57,14 +57,17 @@ require (
5757 github.com/go-jose/go-jose/v4 v4.0.2 // indirect
5858 github.com/go-logr/logr v1.4.2 // indirect
5959 github.com/go-logr/stdr v1.2.2 // indirect
60+ github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
6061 github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
6162 github.com/golang/protobuf v1.5.4 // indirect
63+ github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 // indirect
6264 github.com/google/s2a-go v0.1.7 // indirect
6365 github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
6466 github.com/googleapis/gax-go/v2 v2.12.4 // indirect
6567 github.com/hashicorp/hcl v1.0.0 // indirect
6668 github.com/magiconair/properties v1.8.7 // indirect
6769 github.com/nxadm/tail v1.4.11 // indirect
70+ github.com/onsi/ginkgo v1.16.5 // indirect
6871 github.com/pelletier/go-toml/v2 v2.2.2 // indirect
6972 github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
7073 github.com/prometheus/client_model v0.6.1 // indirect
@@ -85,11 +88,11 @@ require (
8588 go.uber.org/multierr v1.11.0 // indirect
8689 golang.org/x/sys v0.21.0 // indirect
8790 golang.org/x/text v0.16.0 // indirect
91+ golang.org/x/tools v0.22.0 // indirect
8892 google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4 // indirect
8993 google.golang.org/grpc v1.64.0 // indirect
9094 google.golang.org/protobuf v1.34.2 // indirect
9195 gopkg.in/ini.v1 v1.67.0 // indirect
92− gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
9396 gopkg.in/yaml.v2 v2.4.0 // indirect
9497 gopkg.in/yaml.v3 v3.0.1 // indirect
9598 k8s.io/gengo v0.0.0-20240404160639-a0386bf69313 // indirect
go.sum+1−12
@@ -76,7 +76,6 @@ github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ4
7676github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
7777github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
7878github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
79−github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
8079github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
8180github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
8281github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk=
@@ -247,8 +246,6 @@ golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDf
247246golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI=
248247golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM=
249248golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
250−golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM=
251−golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI=
252249golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY=
253250golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI=
254251golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -341,8 +338,6 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T
341338golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
342339golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
343340golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
344−google.golang.org/api v0.183.0 h1:PNMeRDwo1pJdgNcFQ9GstuLe/noWKIc89pRWRLMvLwE=
345−google.golang.org/api v0.183.0/go.mod h1:q43adC5/pHoSZTx5h2mSmdF7NcyfW9JuDyIOJAgS9ZQ=
346341google.golang.org/api v0.185.0 h1:ENEKk1k4jW8SmmaT6RE+ZasxmxezCrD5Vw4npvr+pAU=
347342google.golang.org/api v0.185.0/go.mod h1:HNfvIkJGlgrIlrbYkAm9W9IdkmKZjOTVh33YltygGbg=
348343google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
@@ -350,11 +345,9 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7
350345google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
351346google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
352347google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
353−google.golang.org/genproto v0.0.0-20240528184218-531527333157 h1:u7WMYrIrVvs0TF5yaKwKNbcJyySYf+HAIFXxWltJOXE=
348+google.golang.org/genproto v0.0.0-20240617180043-68d350f18fd4 h1:CUiCqkPw1nNrNQzCCG4WA65m0nAmQiwXHpub3dNyruU=
354349google.golang.org/genproto/googleapis/api v0.0.0-20240415180920-8c6c420018be h1:Zz7rLWqp0ApfsR/l7+zSHhY3PMiH2xqgxlfYfAfNpoU=
355350google.golang.org/genproto/googleapis/api v0.0.0-20240415180920-8c6c420018be/go.mod h1:dvdCTIoAGbkWbcIKBniID56/7XHTt6WfxXNMxuziJ+w=
356−google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 h1:1GBuWVLM/KMVUv1t1En5Gs+gFZCNd360GGb4sSxtrhU=
357−google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0=
358351google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4 h1:Di6ANFilr+S60a4S61ZM00vLdw0IrQOSMS2/6mrnOU0=
359352google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY=
360353google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
@@ -373,8 +366,6 @@ google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2
373366google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
374367google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
375368google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
376−google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg=
377−google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
378369google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
379370google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
380371gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
@@ -399,8 +390,6 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
399390gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
400391honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
401392honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
402−k8s.io/apimachinery v0.30.1 h1:ZQStsEfo4n65yAdlGTfP/uSHMQSoYzU/oeEbkmF7P2U=
403−k8s.io/apimachinery v0.30.1/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc=
404393k8s.io/apimachinery v0.30.2 h1:fEMcnBj6qkzzPGSVsAZtQThU62SmQ4ZymlXRC5yFSCg=
405394k8s.io/apimachinery v0.30.2/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc=
406395k8s.io/gengo v0.0.0-20240404160639-a0386bf69313 h1:wBIDZID8ju9pwOiLlV22YYKjFGtiNSWgHf5CnKLRUuM=
main_suite_test.go+1−1
@@ -4,7 +4,7 @@ import (
44 "testing"
55
66 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
7− . "github.com/onsi/ginkgo"
7+ . "github.com/onsi/ginkgo/v2"
88 . "github.com/onsi/gomega"
99)
1010
main_test.go+1−2
@@ -9,8 +9,7 @@ import (
99
1010 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
1111 . "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options/testutil"
12− . "github.com/onsi/ginkgo"
13− . "github.com/onsi/ginkgo/extensions/table"
12+ . "github.com/onsi/ginkgo/v2"
1413 . "github.com/onsi/gomega"
1514 "github.com/onsi/gomega/format"
1615 "github.com/spf13/pflag"
oauthproxy_test.go+12−9
@@ -576,8 +576,11 @@ type SignInPageTest struct {
576576 signInProviderRegexp *regexp.Regexp
577577}
578578
579−const signInRedirectPattern = `<input type="hidden" name="rd" value="(.*)">`
580−const signInSkipProvider = `>Found<`
579+const (
580+ signInRedirectPattern = `<input type="hidden" name="rd" value="(.*)">`
581+ signInSkipProvider = `>Found<`
582+ patternNotFound = "Did not find pattern in body: "
583+)
581584
582585func NewSignInPageTest(skipProvider bool) (*SignInPageTest, error) {
583586 var sipTest SignInPageTest
@@ -720,7 +723,7 @@ func TestSignInPageIncludesTargetRedirect(t *testing.T) {
720723
721724 match := sipTest.signInRegexp.FindStringSubmatch(body)
722725 if match == nil {
723− t.Fatal("Did not find pattern in body: " +
726+ t.Fatal(patternNotFound +
724727 signInRedirectPattern + "\nBody:\n" + body)
725728 }
726729 if match[1] != endpoint {
@@ -750,7 +753,7 @@ func TestSignInPageDirectAccessRedirectsToRoot(t *testing.T) {
750753
751754 match := sipTest.signInRegexp.FindStringSubmatch(body)
752755 if match == nil {
753− t.Fatal("Did not find pattern in body: " +
756+ t.Fatal(patternNotFound +
754757 signInRedirectPattern + "\nBody:\n" + body)
755758 }
756759 if match[1] != "/" {
@@ -771,7 +774,7 @@ func TestSignInPageSkipProvider(t *testing.T) {
771774
772775 match := sipTest.signInProviderRegexp.FindStringSubmatch(body)
773776 if match == nil {
774− t.Fatal("Did not find pattern in body: " +
777+ t.Fatal(patternNotFound +
775778 signInSkipProvider + "\nBody:\n" + body)
776779 }
777780}
@@ -789,7 +792,7 @@ func TestSignInPageSkipProviderDirect(t *testing.T) {
789792
790793 match := sipTest.signInProviderRegexp.FindStringSubmatch(body)
791794 if match == nil {
792− t.Fatal("Did not find pattern in body: " +
795+ t.Fatal(patternNotFound +
793796 signInSkipProvider + "\nBody:\n" + body)
794797 }
795798}
@@ -1212,7 +1215,7 @@ func TestAuthOnlyEndpointSetXAuthRequestHeaders(t *testing.T) {
12121215
12131216 pcTest.rw = httptest.NewRecorder()
12141217 pcTest.req, _ = http.NewRequest("GET",
1215− pcTest.opts.ProxyPrefix+"/auth", nil)
1218+ pcTest.opts.ProxyPrefix+authOnlyPath, nil)
12161219
12171220 created := time.Now()
12181221 startSession := &sessions.SessionState{
@@ -1305,7 +1308,7 @@ func TestAuthOnlyEndpointSetBasicAuthTrueRequestHeaders(t *testing.T) {
13051308
13061309 pcTest.rw = httptest.NewRecorder()
13071310 pcTest.req, _ = http.NewRequest("GET",
1308− pcTest.opts.ProxyPrefix+"/auth", nil)
1311+ pcTest.opts.ProxyPrefix+authOnlyPath, nil)
13091312
13101313 created := time.Now()
13111314 startSession := &sessions.SessionState{
@@ -1385,7 +1388,7 @@ func TestAuthOnlyEndpointSetBasicAuthFalseRequestHeaders(t *testing.T) {
13851388
13861389 pcTest.rw = httptest.NewRecorder()
13871390 pcTest.req, _ = http.NewRequest("GET",
1388− pcTest.opts.ProxyPrefix+"/auth", nil)
1391+ pcTest.opts.ProxyPrefix+authOnlyPath, nil)
13891392
13901393 created := time.Now()
13911394 startSession := &sessions.SessionState{
pkg/apis/middleware/middleware_suite_test.go+1−1
@@ -4,7 +4,7 @@ import (
44 "testing"
55
66 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
7− . "github.com/onsi/ginkgo"
7+ . "github.com/onsi/ginkgo/v2"
88 . "github.com/onsi/gomega"
99)
1010
pkg/apis/middleware/scope_test.go+1−1
@@ -4,7 +4,7 @@ import (
44 "net/http"
55
66 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware"
7− . "github.com/onsi/ginkgo"
7+ . "github.com/onsi/ginkgo/v2"
88 . "github.com/onsi/gomega"
99)
1010
pkg/apis/options/common_test.go+1−2
@@ -5,8 +5,7 @@ import (
55 "errors"
66 "time"
77
8− . "github.com/onsi/ginkgo"
9− . "github.com/onsi/ginkgo/extensions/table"
8+ . "github.com/onsi/ginkgo/v2"
109 . "github.com/onsi/gomega"
1110)
1211
pkg/apis/options/legacy_options_test.go+1−2
@@ -3,8 +3,7 @@ package options
33import (
44 "time"
55
6− . "github.com/onsi/ginkgo"
7− . "github.com/onsi/ginkgo/extensions/table"
6+ . "github.com/onsi/ginkgo/v2"
87 . "github.com/onsi/gomega"
98)
109
pkg/apis/options/load_test.go+1−2
@@ -7,8 +7,7 @@ import (
77 "time"
88
99 . "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options/testutil"
10− . "github.com/onsi/ginkgo"
11− . "github.com/onsi/ginkgo/extensions/table"
10+ . "github.com/onsi/ginkgo/v2"
1211 . "github.com/onsi/gomega"
1312 "github.com/spf13/pflag"
1413)
pkg/apis/options/options_suite_test.go+1−1
@@ -4,7 +4,7 @@ import (
44 "testing"
55
66 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
7− . "github.com/onsi/ginkgo"
7+ . "github.com/onsi/ginkgo/v2"
88 . "github.com/onsi/gomega"
99)
1010
pkg/apis/options/testutil/options_matcher_test.go+1−1
@@ -1,7 +1,7 @@
11package testutil
22
33import (
4− . "github.com/onsi/ginkgo"
4+ . "github.com/onsi/ginkgo/v2"
55 . "github.com/onsi/gomega"
66)
77
pkg/apis/options/util/util_suite_test.go+1−1
@@ -4,7 +4,7 @@ import (
44 "testing"
55
66 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
7− . "github.com/onsi/ginkgo"
7+ . "github.com/onsi/ginkgo/v2"
88 . "github.com/onsi/gomega"
99)
1010
pkg/apis/options/util/util_test.go+1−1
@@ -5,7 +5,7 @@ import (
55 "path"
66
77 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
8− . "github.com/onsi/ginkgo"
8+ . "github.com/onsi/ginkgo/v2"
99 . "github.com/onsi/gomega"
1010)
1111
pkg/app/pagewriter/error_page_test.go+1−1
@@ -7,7 +7,7 @@ import (
77 "net/http/httptest"
88
99 middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware"
10− . "github.com/onsi/ginkgo"
10+ . "github.com/onsi/ginkgo/v2"
1111 . "github.com/onsi/gomega"
1212)
1313
pkg/app/pagewriter/pagewriter_suite_test.go+1−1
@@ -4,7 +4,7 @@ import (
44 "testing"
55
66 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
7− . "github.com/onsi/ginkgo"
7+ . "github.com/onsi/ginkgo/v2"
88 . "github.com/onsi/gomega"
99)
1010
pkg/app/pagewriter/pagewriter_test.go+1−2
@@ -9,8 +9,7 @@ import (
99 "os"
1010 "path/filepath"
1111
12− . "github.com/onsi/ginkgo"
13− . "github.com/onsi/ginkgo/extensions/table"
12+ . "github.com/onsi/ginkgo/v2"
1413 . "github.com/onsi/gomega"
1514)
1615
pkg/app/pagewriter/sign_in_page_test.go+1−2
@@ -12,8 +12,7 @@ import (
1212 "strings"
1313
1414 middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware"
15− . "github.com/onsi/ginkgo"
16− . "github.com/onsi/ginkgo/extensions/table"
15+ . "github.com/onsi/ginkgo/v2"
1716 . "github.com/onsi/gomega"
1817)
1918
pkg/app/pagewriter/static_pages_test.go+1−1
@@ -10,7 +10,7 @@ import (
1010 "path/filepath"
1111
1212 middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware"
13− . "github.com/onsi/ginkgo"
13+ . "github.com/onsi/ginkgo/v2"
1414 . "github.com/onsi/gomega"
1515)
1616
pkg/app/pagewriter/templates_test.go+1−1
@@ -6,7 +6,7 @@ import (
66 "os"
77 "path/filepath"
88
9− . "github.com/onsi/ginkgo"
9+ . "github.com/onsi/ginkgo/v2"
1010 . "github.com/onsi/gomega"
1111)
1212
pkg/app/redirect/director_test.go+12−12
@@ -4,8 +4,7 @@ import (
44 "net/http"
55
66 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware"
7− . "github.com/onsi/ginkgo"
8− . "github.com/onsi/ginkgo/extensions/table"
7+ . "github.com/onsi/ginkgo/v2"
98 . "github.com/onsi/gomega"
109)
1110
@@ -20,6 +19,7 @@ var _ = Describe("Director Suite", func() {
2019 expectedRedirect string
2120 }
2221
22+ const fooBar = "/foo/bar"
2323 DescribeTable("GetRedirect",
2424 func(in getRedirectTableInput) {
2525 appDirector := NewAppDirector(AppDirectorOpts{
@@ -42,11 +42,11 @@ var _ = Describe("Director Suite", func() {
4242 Expect(redirect).To(Equal(in.expectedRedirect))
4343 },
4444 Entry("Request outside of the proxy prefix, redirects to original request", getRedirectTableInput{
45− requestURL: "/foo/bar",
45+ requestURL: fooBar,
4646 headers: nil,
4747 reverseProxy: false,
4848 validator: testValidator(true),
49− expectedRedirect: "/foo/bar",
49+ expectedRedirect: fooBar,
5050 }),
5151 Entry("Request with query, preserves the query", getRedirectTableInput{
5252 requestURL: "/foo?bar",
@@ -56,7 +56,7 @@ var _ = Describe("Director Suite", func() {
5656 expectedRedirect: "/foo?bar",
5757 }),
5858 Entry("Request under the proxy prefix, redirects to root", getRedirectTableInput{
59− requestURL: testProxyPrefix + "/foo/bar",
59+ requestURL: testProxyPrefix + fooBar,
6060 headers: nil,
6161 reverseProxy: false,
6262 validator: testValidator(true),
@@ -67,7 +67,7 @@ var _ = Describe("Director Suite", func() {
6767 headers: map[string]string{
6868 "X-Forwarded-Proto": "https",
6969 "X-Forwarded-Host": "a-service.example.com",
70− "X-Forwarded-Uri": "/foo/bar",
70+ "X-Forwarded-Uri": fooBar,
7171 },
7272 reverseProxy: true,
7373 validator: testValidator(true),
@@ -78,29 +78,29 @@ var _ = Describe("Director Suite", func() {
7878 headers: map[string]string{
7979 "X-Forwarded-Proto": "https",
8080 "X-Forwarded-Host": "a-service.example.com",
81− "X-Forwarded-Uri": "/foo/bar",
81+ "X-Forwarded-Uri": fooBar,
8282 },
8383 reverseProxy: false,
8484 validator: testValidator(true),
8585 expectedRedirect: "/foo?bar",
8686 }),
8787 Entry("Proxied request with headers, under ProxyPrefix, redirects to root", getRedirectTableInput{
88− requestURL: "https://oauth.example.com" + testProxyPrefix + "/foo/bar",
88+ requestURL: "https://oauth.example.com" + testProxyPrefix + fooBar,
8989 headers: map[string]string{
9090 "X-Forwarded-Proto": "https",
9191 "X-Forwarded-Host": "a-service.example.com",
92− "X-Forwarded-Uri": testProxyPrefix + "/foo/bar",
92+ "X-Forwarded-Uri": testProxyPrefix + fooBar,
9393 },
9494 reverseProxy: true,
9595 validator: testValidator(true),
9696 expectedRedirect: "https://a-service.example.com/",
9797 }),
9898 Entry("Proxied request with port, under ProxyPrefix, redirects to root", getRedirectTableInput{
99− requestURL: "https://oauth.example.com" + testProxyPrefix + "/foo/bar",
99+ requestURL: "https://oauth.example.com" + testProxyPrefix + fooBar,
100100 headers: map[string]string{
101101 "X-Forwarded-Proto": "https",
102102 "X-Forwarded-Host": "a-service.example.com:8443",
103− "X-Forwarded-Uri": testProxyPrefix + "/foo/bar",
103+ "X-Forwarded-Uri": testProxyPrefix + fooBar,
104104 },
105105 reverseProxy: true,
106106 validator: testValidator(true),
@@ -167,7 +167,7 @@ var _ = Describe("Director Suite", func() {
167167 headers: map[string]string{
168168 "X-Forwarded-Proto": "https",
169169 "X-Forwarded-Host": "a-service.example.com",
170− "X-Forwarded-Uri": "/foo/bar",
170+ "X-Forwarded-Uri": fooBar,
171171 },
172172 reverseProxy: true,
173173 validator: testValidator(false, "https://a-service.example.com/foo/bar"),
pkg/app/redirect/pagewriter_suite_test.go+1−1
@@ -4,7 +4,7 @@ import (
44 "testing"
55
66 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
7− . "github.com/onsi/ginkgo"
7+ . "github.com/onsi/ginkgo/v2"
88 . "github.com/onsi/gomega"
99)
1010
pkg/app/redirect/validator_test.go+1−2
@@ -6,8 +6,7 @@ import (
66 "os"
77
88 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/util"
9− . "github.com/onsi/ginkgo"
10− . "github.com/onsi/ginkgo/extensions/table"
9+ . "github.com/onsi/ginkgo/v2"
1110 . "github.com/onsi/gomega"
1211)
1312
pkg/authentication/basic/basic_suite_test.go+1−1
@@ -4,7 +4,7 @@ import (
44 "testing"
55
66 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
7− . "github.com/onsi/ginkgo"
7+ . "github.com/onsi/ginkgo/v2"
88 . "github.com/onsi/gomega"
99)
1010
pkg/authentication/basic/htpasswd_test.go+12−10
@@ -3,7 +3,7 @@ package basic
33import (
44 "os"
55
6− . "github.com/onsi/ginkgo"
6+ . "github.com/onsi/ginkgo/v2"
77 . "github.com/onsi/gomega"
88 "github.com/onsi/gomega/types"
99)
@@ -17,6 +17,17 @@ const (
1717 user2Password = "us3r2P455W0Rd!"
1818)
1919
20+var (
21+ fileNames []string
22+)
23+
24+var _ = AfterSuite(func() {
25+ for _, v := range fileNames {
26+ err := os.Remove(v)
27+ Expect(err).ToNot(HaveOccurred())
28+ }
29+})
30+
2031var _ = Describe("HTPasswd Suite", func() {
2132 Context("with an HTPassword Validator", func() {
2233 assertHtpasswdMapFromFile := func(filePath string) {
@@ -99,15 +110,6 @@ var _ = Describe("HTPasswd Suite", func() {
99110 const filePathPrefix = "htpasswd-file-updated-"
100111 const adminUserHtpasswdEntry = "admin:$2y$05$SXWrNM7ldtbRzBvUC3VXyOvUeiUcP45XPwM93P5eeGOEPIiAZmJjC"
101112 const user1HtpasswdEntry = "user1:$2y$05$/sZYJOk8.3Etg4V6fV7puuXfCJLmV5Q7u3xvKpjBSJUka.t2YtmmG"
102− var fileNames []string
103−
104− AfterSuite(func() {
105− for _, v := range fileNames {
106− err := os.Remove(v)
107− Expect(err).ToNot(HaveOccurred())
108− }
109−
110− })
111113
112114 type htpasswdUpdate struct {
113115 testText string
pkg/clock/clock_suite_test.go+1−1
@@ -4,7 +4,7 @@ import (
44 "testing"
55
66 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
7− . "github.com/onsi/ginkgo"
7+ . "github.com/onsi/ginkgo/v2"
88 . "github.com/onsi/gomega"
99)
1010
pkg/clock/clock_test.go+1−1
@@ -6,7 +6,7 @@ import (
66 "time"
77
88 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/clock"
9− . "github.com/onsi/ginkgo"
9+ . "github.com/onsi/ginkgo/v2"
1010 . "github.com/onsi/gomega"
1111)
1212
pkg/cookies/cookies_suite_test.go+1−1
@@ -6,7 +6,7 @@ import (
66 "time"
77
88 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
9− . "github.com/onsi/ginkgo"
9+ . "github.com/onsi/ginkgo/v2"
1010 . "github.com/onsi/gomega"
1111)
1212
pkg/cookies/cookies_test.go+1−2
@@ -8,8 +8,7 @@ import (
88 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
99
1010 middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware"
11− . "github.com/onsi/ginkgo"
12− . "github.com/onsi/ginkgo/extensions/table"
11+ . "github.com/onsi/ginkgo/v2"
1312 . "github.com/onsi/gomega"
1413)
1514
pkg/cookies/csrf_per_request_test.go+1−1
@@ -10,7 +10,7 @@ import (
1010 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
1111 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
1212 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/encryption"
13− . "github.com/onsi/ginkgo"
13+ . "github.com/onsi/ginkgo/v2"
1414 . "github.com/onsi/gomega"
1515)
1616
pkg/cookies/csrf_test.go+1−1
@@ -10,7 +10,7 @@ import (
1010 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
1111 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
1212 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/encryption"
13− . "github.com/onsi/ginkgo"
13+ . "github.com/onsi/ginkgo/v2"
1414 . "github.com/onsi/gomega"
1515)
1616
pkg/header/header_suite_test.go+1−1
@@ -6,7 +6,7 @@ import (
66 "testing"
77
88 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
9− . "github.com/onsi/ginkgo"
9+ . "github.com/onsi/ginkgo/v2"
1010 . "github.com/onsi/gomega"
1111)
1212
pkg/header/injector_test.go+1−2
@@ -7,8 +7,7 @@ import (
77
88 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
99 sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
10− . "github.com/onsi/ginkgo"
11− . "github.com/onsi/ginkgo/extensions/table"
10+ . "github.com/onsi/ginkgo/v2"
1211 . "github.com/onsi/gomega"
1312)
1413
pkg/http/http_suite_test.go+1−1
@@ -12,7 +12,7 @@ import (
1212 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
1313 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
1414 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/util"
15− . "github.com/onsi/ginkgo"
15+ . "github.com/onsi/ginkgo/v2"
1616 . "github.com/onsi/gomega"
1717)
1818
pkg/http/server_group_test.go+1−1
@@ -4,7 +4,7 @@ import (
44 "context"
55 "errors"
66
7− . "github.com/onsi/ginkgo"
7+ . "github.com/onsi/ginkgo/v2"
88 . "github.com/onsi/gomega"
99)
1010
pkg/http/server_test.go+1−2
@@ -9,8 +9,7 @@ import (
99 "os"
1010
1111 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
12− . "github.com/onsi/ginkgo"
13− . "github.com/onsi/ginkgo/extensions/table"
12+ . "github.com/onsi/ginkgo/v2"
1413 . "github.com/onsi/gomega"
1514 . "github.com/onsi/gomega/gleak"
1615)
pkg/middleware/basic_session_test.go+1−2
@@ -7,8 +7,7 @@ import (
77
88 middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware"
99 sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
10− . "github.com/onsi/ginkgo"
11− . "github.com/onsi/ginkgo/extensions/table"
10+ . "github.com/onsi/ginkgo/v2"
1211 . "github.com/onsi/gomega"
1312)
1413
pkg/middleware/headers_test.go+1−2
@@ -8,8 +8,7 @@ import (
88 middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware"
99 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
1010 sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
11− . "github.com/onsi/ginkgo"
12− . "github.com/onsi/ginkgo/extensions/table"
11+ . "github.com/onsi/ginkgo/v2"
1312 . "github.com/onsi/gomega"
1413)
1514
pkg/middleware/healthcheck_test.go+1−2
@@ -4,8 +4,7 @@ import (
44 "net/http"
55 "net/http/httptest"
66
7− . "github.com/onsi/ginkgo"
8− . "github.com/onsi/ginkgo/extensions/table"
7+ . "github.com/onsi/ginkgo/v2"
98 . "github.com/onsi/gomega"
109)
1110
pkg/middleware/jwt_session_test.go+1−2
@@ -17,8 +17,7 @@ import (
1717 "github.com/golang-jwt/jwt/v5"
1818 middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware"
1919 sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
20− . "github.com/onsi/ginkgo"
21− . "github.com/onsi/ginkgo/extensions/table"
20+ . "github.com/onsi/ginkgo/v2"
2221 . "github.com/onsi/gomega"
2322 k8serrors "k8s.io/apimachinery/pkg/util/errors"
2423)
pkg/middleware/metrics_test.go+1−2
@@ -5,8 +5,7 @@ import (
55 "net/http/httptest"
66 "os"
77
8− . "github.com/onsi/ginkgo"
9− . "github.com/onsi/ginkgo/extensions/table"
8+ . "github.com/onsi/ginkgo/v2"
109 . "github.com/onsi/gomega"
1110
1211 "github.com/prometheus/client_golang/prometheus"
pkg/middleware/middleware_suite_test.go+1−1
@@ -6,7 +6,7 @@ import (
66
77 middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware"
88 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
9− . "github.com/onsi/ginkgo"
9+ . "github.com/onsi/ginkgo/v2"
1010 . "github.com/onsi/gomega"
1111)
1212
pkg/middleware/readynesscheck_test.go+1−2
@@ -6,8 +6,7 @@ import (
66 "net/http"
77 "net/http/httptest"
88
9− . "github.com/onsi/ginkgo"
10− . "github.com/onsi/ginkgo/extensions/table"
9+ . "github.com/onsi/ginkgo/v2"
1110 . "github.com/onsi/gomega"
1211)
1312
pkg/middleware/redirect_to_https_test.go+1−2
@@ -6,8 +6,7 @@ import (
66 "net/http/httptest"
77
88 middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware"
9− . "github.com/onsi/ginkgo"
10− . "github.com/onsi/ginkgo/extensions/table"
9+ . "github.com/onsi/ginkgo/v2"
1110 . "github.com/onsi/gomega"
1211)
1312
pkg/middleware/request_logger_test.go+1−2
@@ -8,8 +8,7 @@ import (
88 middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware"
99 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
1010 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
11− . "github.com/onsi/ginkgo"
12− . "github.com/onsi/ginkgo/extensions/table"
11+ . "github.com/onsi/ginkgo/v2"
1312 . "github.com/onsi/gomega"
1413)
1514
pkg/middleware/scope_test.go+1−1
@@ -6,7 +6,7 @@ import (
66
77 "github.com/google/uuid"
88 middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware"
9− . "github.com/onsi/ginkgo"
9+ . "github.com/onsi/ginkgo/v2"
1010 . "github.com/onsi/gomega"
1111)
1212
pkg/middleware/session_utils_test.go+1−2
@@ -3,8 +3,7 @@ package middleware
33import (
44 "errors"
55
6− . "github.com/onsi/ginkgo"
7− . "github.com/onsi/ginkgo/extensions/table"
6+ . "github.com/onsi/ginkgo/v2"
87 . "github.com/onsi/gomega"
98)
109
pkg/middleware/stored_session_test.go+1−2
@@ -13,8 +13,7 @@ import (
1313 sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
1414 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/clock"
1515 "github.com/oauth2-proxy/oauth2-proxy/v7/providers"
16− . "github.com/onsi/ginkgo"
17− . "github.com/onsi/ginkgo/extensions/table"
16+ . "github.com/onsi/ginkgo/v2"
1817 . "github.com/onsi/gomega"
1918)
2019
pkg/providers/oidc/oidc_suite_test.go+1−1
@@ -4,7 +4,7 @@ import (
44 "testing"
55
66 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
7− . "github.com/onsi/ginkgo"
7+ . "github.com/onsi/ginkgo/v2"
88 . "github.com/onsi/gomega"
99)
1010
pkg/providers/oidc/provider_test.go+1−2
@@ -7,8 +7,7 @@ import (
77 "net/http"
88
99 "github.com/oauth2-proxy/mockoidc"
10− . "github.com/onsi/ginkgo"
11− . "github.com/onsi/ginkgo/extensions/table"
10+ . "github.com/onsi/ginkgo/v2"
1211 . "github.com/onsi/gomega"
1312)
1413
pkg/providers/oidc/provider_verifier_test.go+1−2
@@ -6,8 +6,7 @@ import (
66
77 "github.com/golang-jwt/jwt/v5"
88 "github.com/oauth2-proxy/mockoidc"
9− . "github.com/onsi/ginkgo"
10− . "github.com/onsi/ginkgo/extensions/table"
9+ . "github.com/onsi/ginkgo/v2"
1110 . "github.com/onsi/gomega"
1211)
1312
pkg/providers/oidc/verifier_test.go+1−1
@@ -9,7 +9,7 @@ import (
99
1010 "github.com/coreos/go-oidc/v3/oidc"
1111 "github.com/go-jose/go-jose/v3"
12− . "github.com/onsi/ginkgo"
12+ . "github.com/onsi/ginkgo/v2"
1313 . "github.com/onsi/gomega"
1414)
1515
pkg/providers/util/claim_extractor_test.go+1−2
@@ -10,8 +10,7 @@ import (
1010 "net/url"
1111 "sync/atomic"
1212
13− . "github.com/onsi/ginkgo"
14− . "github.com/onsi/ginkgo/extensions/table"
13+ . "github.com/onsi/ginkgo/v2"
1514 . "github.com/onsi/gomega"
1615)
1716
pkg/providers/util/util_suite_test.go+1−1
@@ -4,7 +4,7 @@ import (
44 "testing"
55
66 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
7− . "github.com/onsi/ginkgo"
7+ . "github.com/onsi/ginkgo/v2"
88 . "github.com/onsi/gomega"
99)
1010
pkg/requests/builder_test.go+1−1
@@ -11,7 +11,7 @@ import (
1111 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/version"
1212
1313 "github.com/bitly/go-simplejson"
14− . "github.com/onsi/ginkgo"
14+ . "github.com/onsi/ginkgo/v2"
1515 . "github.com/onsi/gomega"
1616)
1717
pkg/requests/requests_suite_test.go+1−1
@@ -10,7 +10,7 @@ import (
1010 "testing"
1111
1212 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
13− . "github.com/onsi/ginkgo"
13+ . "github.com/onsi/ginkgo/v2"
1414 . "github.com/onsi/gomega"
1515)
1616
pkg/requests/result_test.go+1−2
@@ -4,8 +4,7 @@ import (
44 "errors"
55 "net/http"
66
7− . "github.com/onsi/ginkgo"
8− . "github.com/onsi/ginkgo/extensions/table"
7+ . "github.com/onsi/ginkgo/v2"
98 . "github.com/onsi/gomega"
109)
1110
pkg/requests/util/util_suite_test.go+1−1
@@ -4,7 +4,7 @@ import (
44 "testing"
55
66 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
7− . "github.com/onsi/ginkgo"
7+ . "github.com/onsi/ginkgo/v2"
88 . "github.com/onsi/gomega"
99)
1010
pkg/requests/util/util_test.go+1−1
@@ -7,7 +7,7 @@ import (
77
88 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware"
99 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/requests/util"
10− . "github.com/onsi/ginkgo"
10+ . "github.com/onsi/ginkgo/v2"
1111 . "github.com/onsi/gomega"
1212)
1313
pkg/sessions/cookie/session_store_test.go+1−1
@@ -12,7 +12,7 @@ import (
1212 sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
1313 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
1414 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/tests"
15− . "github.com/onsi/ginkgo"
15+ . "github.com/onsi/ginkgo/v2"
1616 . "github.com/onsi/gomega"
1717 "github.com/stretchr/testify/assert"
1818)
pkg/sessions/persistence/manager_test.go+1−1
@@ -6,7 +6,7 @@ import (
66 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
77 sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
88 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/tests"
9− . "github.com/onsi/ginkgo"
9+ . "github.com/onsi/ginkgo/v2"
1010)
1111
1212var _ = Describe("Persistence Manager Tests", func() {
pkg/sessions/persistence/persistence_suite_test.go+1−1
@@ -4,7 +4,7 @@ import (
44 "testing"
55
66 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
7− . "github.com/onsi/ginkgo"
7+ . "github.com/onsi/ginkgo/v2"
88 . "github.com/onsi/gomega"
99)
1010
pkg/sessions/persistence/ticket_test.go+1−2
@@ -8,8 +8,7 @@ import (
88
99 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
1010 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
11− . "github.com/onsi/ginkgo"
12− . "github.com/onsi/ginkgo/extensions/table"
11+ . "github.com/onsi/ginkgo/v2"
1312 . "github.com/onsi/gomega"
1413)
1514
pkg/sessions/redis/client_test.go+1−1
@@ -9,7 +9,7 @@ import (
99 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
1010 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/encryption"
1111 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/redis"
12− . "github.com/onsi/ginkgo"
12+ . "github.com/onsi/ginkgo/v2"
1313 . "github.com/onsi/gomega"
1414)
1515
pkg/sessions/redis/redis_store_test.go+11−236
@@ -1,10 +1,6 @@
11package redis
22
33import (
4− "bytes"
5− "crypto/tls"
6− "encoding/pem"
7− "os"
84 "time"
95
106 "github.com/Bose/minisentinel"
@@ -13,43 +9,15 @@ import (
139 sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
1410 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/persistence"
1511 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/tests"
16− "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/util"
17− . "github.com/onsi/ginkgo"
12+ . "github.com/onsi/ginkgo/v2"
1813 . "github.com/onsi/gomega"
1914)
2015
21−const redisUsername = "testuser"
22−const redisPassword = "0123456789abcdefghijklmnopqrstuv"
23−
24−var (
25− cert tls.Certificate
26− caPath string
16+const (
17+ redisUsername = "testuser"
18+ redisPassword = "0123456789abcdefghijklmnopqrstuv"
2719)
2820
29−var _ = BeforeSuite(func() {
30− var err error
31− certBytes, keyBytes, err := util.GenerateCert("127.0.0.1")
32− Expect(err).ToNot(HaveOccurred())
33− certOut := new(bytes.Buffer)
34− Expect(pem.Encode(certOut, &pem.Block{Type: "CERTIFICATE", Bytes: certBytes})).To(Succeed())
35− certData := certOut.Bytes()
36− keyOut := new(bytes.Buffer)
37− Expect(pem.Encode(keyOut, &pem.Block{Type: "PRIVATE KEY", Bytes: keyBytes})).To(Succeed())
38− cert, err = tls.X509KeyPair(certData, keyOut.Bytes())
39− Expect(err).ToNot(HaveOccurred())
40−
41− certFile, err := os.CreateTemp("", "cert.*.pem")
42− Expect(err).ToNot(HaveOccurred())
43− caPath = certFile.Name()
44− _, err = certFile.Write(certData)
45− defer certFile.Close()
46− Expect(err).ToNot(HaveOccurred())
47−})
48−
49−var _ = AfterSuite(func() {
50− Expect(os.Remove(caPath)).ToNot(HaveOccurred())
51−})
52−
5321var _ = Describe("Redis SessionStore Tests", func() {
5422 // helper interface to allow us to close client connections
5523 // All non-nil redis clients should implement this
@@ -79,11 +47,12 @@ var _ = Describe("Redis SessionStore Tests", func() {
7947 }
8048 })
8149
50+ const redisProtocol = "redis://"
8251 tests.RunSessionStoreTests(
8352 func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
8453 // Set the connection URL
8554 opts.Type = options.RedisSessionStoreType
86− opts.Redis.ConnectionURL = "redis://" + mr.Addr()
55+ opts.Redis.ConnectionURL = redisProtocol + mr.Addr()
8756
8857 // Capture the session store so that we can close the client
8958 var err error
@@ -104,14 +73,10 @@ var _ = Describe("Redis SessionStore Tests", func() {
10473 Expect(ms.Start()).To(Succeed())
10574 })
10675
107− AfterEach(func() {
108− ms.Close()
109− })
110−
11176 tests.RunSessionStoreTests(
11277 func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
11378 // Set the sentinel connection URL
114− sentinelAddr := "redis://" + ms.Addr()
79+ sentinelAddr := redisProtocol + ms.Addr()
11580 opts.Type = options.RedisSessionStoreType
11681 opts.Redis.SentinelConnectionURLs = []string{sentinelAddr}
11782 opts.Redis.UseSentinel = true
@@ -132,7 +97,7 @@ var _ = Describe("Redis SessionStore Tests", func() {
13297 Context("with cluster", func() {
13398 tests.RunSessionStoreTests(
13499 func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
135− clusterAddr := "redis://" + mr.Addr()
100+ clusterAddr := redisProtocol + mr.Addr()
136101 opts.Type = options.RedisSessionStoreType
137102 opts.Redis.ClusterConnectionURLs = []string{clusterAddr}
138103 opts.Redis.UseCluster = true
@@ -162,7 +127,7 @@ var _ = Describe("Redis SessionStore Tests", func() {
162127 func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
163128 // Set the connection URL
164129 opts.Type = options.RedisSessionStoreType
165− opts.Redis.ConnectionURL = "redis://" + mr.Addr()
130+ opts.Redis.ConnectionURL = redisProtocol + mr.Addr()
166131 opts.Redis.Password = redisPassword
167132
168133 // Capture the session store so that we can close the client
@@ -184,14 +149,10 @@ var _ = Describe("Redis SessionStore Tests", func() {
184149 Expect(ms.Start()).To(Succeed())
185150 })
186151
187− AfterEach(func() {
188− ms.Close()
189− })
190−
191152 tests.RunSessionStoreTests(
192153 func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
193154 // Set the sentinel connection URL
194− sentinelAddr := "redis://" + ms.Addr()
155+ sentinelAddr := redisProtocol + ms.Addr()
195156 opts.Type = options.RedisSessionStoreType
196157 opts.Redis.SentinelConnectionURLs = []string{sentinelAddr}
197158 opts.Redis.UseSentinel = true
@@ -213,7 +174,7 @@ var _ = Describe("Redis SessionStore Tests", func() {
213174 Context("with cluster", func() {
214175 tests.RunSessionStoreTests(
215176 func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
216− clusterAddr := "redis://" + mr.Addr()
177+ clusterAddr := redisProtocol + mr.Addr()
217178 opts.Type = options.RedisSessionStoreType
218179 opts.Redis.ClusterConnectionURLs = []string{clusterAddr}
219180 opts.Redis.UseCluster = true
@@ -281,190 +242,4 @@ var _ = Describe("Redis SessionStore Tests", func() {
281242 )
282243 })
283244 })
284−
285− Context("with TLS connection", func() {
286− BeforeEach(func() {
287− mr.Close()
288−
289− var err error
290− mr, err = miniredis.RunTLS(&tls.Config{Certificates: []tls.Certificate{cert}})
291− Expect(err).ToNot(HaveOccurred())
292− })
293− AfterEach(func() {
294− mr.Close()
295−
296− var err error
297− mr, err = miniredis.Run()
298− Expect(err).ToNot(HaveOccurred())
299− })
300−
301− Context("with standalone", func() {
302− tests.RunSessionStoreTests(
303− func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
304− // Set the connection URL
305− opts.Type = options.RedisSessionStoreType
306− opts.Redis.ConnectionURL = "rediss://" + mr.Addr()
307− opts.Redis.CAPath = caPath
308−
309− // Capture the session store so that we can close the client
310− ss, err := NewRedisSessionStore(opts, cookieOpts)
311− return ss, err
312− },
313− func(d time.Duration) error {
314− mr.FastForward(d)
315− return nil
316− },
317− )
318− })
319−
320− Context("with cluster", func() {
321− tests.RunSessionStoreTests(
322− func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
323− clusterAddr := "rediss://" + mr.Addr()
324− opts.Type = options.RedisSessionStoreType
325− opts.Redis.ClusterConnectionURLs = []string{clusterAddr}
326− opts.Redis.UseCluster = true
327− opts.Redis.CAPath = caPath
328−
329− // Capture the session store so that we can close the client
330− var err error
331− ss, err = NewRedisSessionStore(opts, cookieOpts)
332− return ss, err
333− },
334− func(d time.Duration) error {
335− mr.FastForward(d)
336− return nil
337− },
338− )
339− })
340− })
341−
342− Context("with insecure TLS connection", func() {
343− BeforeEach(func() {
344− mr.Close()
345−
346− var err error
347− mr, err = miniredis.RunTLS(&tls.Config{Certificates: []tls.Certificate{cert}})
348− Expect(err).ToNot(HaveOccurred())
349− })
350− AfterEach(func() {
351− mr.Close()
352−
353− var err error
354− mr, err = miniredis.Run()
355− Expect(err).ToNot(HaveOccurred())
356− })
357−
358− Context("with standalone", func() {
359− tests.RunSessionStoreTests(
360− func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
361− // Set the connection URL
362− opts.Type = options.RedisSessionStoreType
363− opts.Redis.ConnectionURL = "rediss://" + mr.Addr()
364− opts.Redis.InsecureSkipTLSVerify = true
365−
366− // Capture the session store so that we can close the client
367− ss, err := NewRedisSessionStore(opts, cookieOpts)
368− return ss, err
369− },
370− func(d time.Duration) error {
371− mr.FastForward(d)
372− return nil
373− },
374− )
375− })
376−
377− Context("with cluster", func() {
378− tests.RunSessionStoreTests(
379− func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
380− clusterAddr := "rediss://" + mr.Addr()
381− opts.Type = options.RedisSessionStoreType
382− opts.Redis.ClusterConnectionURLs = []string{clusterAddr}
383− opts.Redis.UseCluster = true
384− opts.Redis.InsecureSkipTLSVerify = true
385−
386− // Capture the session store so that we can close the client
387− var err error
388− ss, err = NewRedisSessionStore(opts, cookieOpts)
389− return ss, err
390− },
391− func(d time.Duration) error {
392− mr.FastForward(d)
393− return nil
394− },
395− )
396− })
397− })
398−
399− Context("with custom CA path", func() {
400− BeforeEach(func() {
401− mr.Close()
402−
403− var err error
404− mr, err = miniredis.RunTLS(&tls.Config{Certificates: []tls.Certificate{cert}})
405− Expect(err).ToNot(HaveOccurred())
406− })
407−
408− AfterEach(func() {
409− mr.Close()
410−
411− var err error
412− mr, err = miniredis.Run()
413− Expect(err).ToNot(HaveOccurred())
414− })
415−
416− tests.RunSessionStoreTests(
417− func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
418− // Set the connection URL
419− opts.Type = options.RedisSessionStoreType
420− opts.Redis.ConnectionURL = "redis://" + mr.Addr()
421− opts.Redis.CAPath = caPath
422−
423− // Capture the session store so that we can close the client
424− var err error
425− ss, err = NewRedisSessionStore(opts, cookieOpts)
426− return ss, err
427− },
428− func(d time.Duration) error {
429− mr.FastForward(d)
430− return nil
431− },
432− )
433− })
434−
435− Context("with insecure TLS connection", func() {
436− BeforeEach(func() {
437− mr.Close()
438−
439− var err error
440− mr, err = miniredis.RunTLS(&tls.Config{Certificates: []tls.Certificate{cert}})
441− Expect(err).ToNot(HaveOccurred())
442− })
443−
444− AfterEach(func() {
445− mr.Close()
446−
447− var err error
448− mr, err = miniredis.Run()
449− Expect(err).ToNot(HaveOccurred())
450− })
451−
452− tests.RunSessionStoreTests(
453− func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
454− // Set the connection URL
455− opts.Type = options.RedisSessionStoreType
456− opts.Redis.ConnectionURL = "redis://127.0.0.1:" + mr.Port() // func (*Miniredis) StartTLS listens on 127.0.0.1
457− opts.Redis.InsecureSkipTLSVerify = true
458−
459− // Capture the session store so that we can close the client
460− var err error
461− ss, err = NewRedisSessionStore(opts, cookieOpts)
462− return ss, err
463− },
464− func(d time.Duration) error {
465− mr.FastForward(d)
466− return nil
467− },
468− )
469− })
470245})
pkg/sessions/redis/redis_store_tls_test.gonew file+169
@@ -0,0 +1,169 @@
1+package redis
2+
3+import (
4+ "crypto/tls"
5+ "time"
6+
7+ "github.com/alicebob/miniredis/v2"
8+ "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
9+ sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
10+ "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/persistence"
11+ "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/tests"
12+ . "github.com/onsi/ginkgo/v2"
13+ . "github.com/onsi/gomega"
14+)
15+
16+var _ = Describe("Redis SessionStore Tests", func() {
17+ // helper interface to allow us to close client connections
18+ // All non-nil redis clients should implement this
19+ type closer interface {
20+ Close() error
21+ }
22+
23+ var mr *miniredis.Miniredis
24+ var ss sessionsapi.SessionStore
25+
26+ BeforeEach(func() {
27+ var err error
28+ mr, err = miniredis.RunTLS(&tls.Config{Certificates: []tls.Certificate{cert}})
29+ Expect(err).ToNot(HaveOccurred())
30+ })
31+
32+ AfterEach(func() {
33+ mr.Close()
34+ })
35+
36+ JustAfterEach(func() {
37+ // Release any connections immediately after the test ends
38+ if redisManager, ok := ss.(*persistence.Manager); ok {
39+ if redisManager.Store.(*SessionStore).Client != nil {
40+ Expect(redisManager.Store.(*SessionStore).Client.(closer).Close()).To(Succeed())
41+ }
42+ }
43+ })
44+
45+ const redissProtocol = "rediss://"
46+ Context("with TLS connection", func() {
47+ Context("with standalone", func() {
48+ tests.RunSessionStoreTests(
49+ func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
50+ // Set the connection URL
51+ opts.Type = options.RedisSessionStoreType
52+ opts.Redis.ConnectionURL = redissProtocol + mr.Addr()
53+ opts.Redis.CAPath = caPath
54+
55+ // Capture the session store so that we can close the client
56+ ss, err := NewRedisSessionStore(opts, cookieOpts)
57+ return ss, err
58+ },
59+ func(d time.Duration) error {
60+ mr.FastForward(d)
61+ return nil
62+ },
63+ )
64+ })
65+
66+ Context("with cluster", func() {
67+ tests.RunSessionStoreTests(
68+ func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
69+ clusterAddr := redissProtocol + mr.Addr()
70+ opts.Type = options.RedisSessionStoreType
71+ opts.Redis.ClusterConnectionURLs = []string{clusterAddr}
72+ opts.Redis.UseCluster = true
73+ opts.Redis.CAPath = caPath
74+
75+ // Capture the session store so that we can close the client
76+ var err error
77+ ss, err = NewRedisSessionStore(opts, cookieOpts)
78+ return ss, err
79+ },
80+ func(d time.Duration) error {
81+ mr.FastForward(d)
82+ return nil
83+ },
84+ )
85+ })
86+ })
87+
88+ Context("with insecure TLS connection", func() {
89+ Context("with standalone", func() {
90+ tests.RunSessionStoreTests(
91+ func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
92+ // Set the connection URL
93+ opts.Type = options.RedisSessionStoreType
94+ opts.Redis.ConnectionURL = redissProtocol + mr.Addr()
95+ opts.Redis.InsecureSkipTLSVerify = true
96+
97+ // Capture the session store so that we can close the client
98+ ss, err := NewRedisSessionStore(opts, cookieOpts)
99+ return ss, err
100+ },
101+ func(d time.Duration) error {
102+ mr.FastForward(d)
103+ return nil
104+ },
105+ )
106+ })
107+
108+ Context("with cluster", func() {
109+ tests.RunSessionStoreTests(
110+ func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
111+ clusterAddr := redissProtocol + mr.Addr()
112+ opts.Type = options.RedisSessionStoreType
113+ opts.Redis.ClusterConnectionURLs = []string{clusterAddr}
114+ opts.Redis.UseCluster = true
115+ opts.Redis.InsecureSkipTLSVerify = true
116+
117+ // Capture the session store so that we can close the client
118+ var err error
119+ ss, err = NewRedisSessionStore(opts, cookieOpts)
120+ return ss, err
121+ },
122+ func(d time.Duration) error {
123+ mr.FastForward(d)
124+ return nil
125+ },
126+ )
127+ })
128+ })
129+
130+ Context("with custom CA path", func() {
131+ tests.RunSessionStoreTests(
132+ func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
133+ // Set the connection URL
134+ opts.Type = options.RedisSessionStoreType
135+ opts.Redis.ConnectionURL = redissProtocol + mr.Addr()
136+ opts.Redis.CAPath = caPath
137+
138+ // Capture the session store so that we can close the client
139+ var err error
140+ ss, err = NewRedisSessionStore(opts, cookieOpts)
141+ return ss, err
142+ },
143+ func(d time.Duration) error {
144+ mr.FastForward(d)
145+ return nil
146+ },
147+ )
148+ })
149+
150+ Context("with insecure TLS connection", func() {
151+ tests.RunSessionStoreTests(
152+ func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) {
153+ // Set the connection URL
154+ opts.Type = options.RedisSessionStoreType
155+ opts.Redis.ConnectionURL = "redis://127.0.0.1:" + mr.Port() // func (*Miniredis) StartTLS listens on 127.0.0.1
156+ opts.Redis.InsecureSkipTLSVerify = true
157+
158+ // Capture the session store so that we can close the client
159+ var err error
160+ ss, err = NewRedisSessionStore(opts, cookieOpts)
161+ return ss, err
162+ },
163+ func(d time.Duration) error {
164+ mr.FastForward(d)
165+ return nil
166+ },
167+ )
168+ })
169+})
pkg/sessions/redis/redis_test.go+35−2
@@ -1,13 +1,17 @@
1−package redis_test
1+package redis
22
33import (
4+ "bytes"
45 "context"
6+ "crypto/tls"
7+ "encoding/pem"
58 "log"
69 "os"
710 "testing"
811
912 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
10− . "github.com/onsi/ginkgo"
13+ "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/util"
14+ . "github.com/onsi/ginkgo/v2"
1115 . "github.com/onsi/gomega"
1216 "github.com/redis/go-redis/v9"
1317)
@@ -22,6 +26,11 @@ func (l *wrappedRedisLogger) Printf(_ context.Context, format string, v ...inter
2226 l.Logger.Printf(format, v...)
2327}
2428
29+var (
30+ cert tls.Certificate
31+ caPath string
32+)
33+
2534func TestRedis(t *testing.T) {
2635 logger.SetOutput(GinkgoWriter)
2736 logger.SetErrOutput(GinkgoWriter)
@@ -33,3 +42,27 @@ func TestRedis(t *testing.T) {
3342 RegisterFailHandler(Fail)
3443 RunSpecs(t, "Redis")
3544}
45+
46+var _ = BeforeSuite(func() {
47+ var err error
48+ certBytes, keyBytes, err := util.GenerateCert("127.0.0.1")
49+ Expect(err).ToNot(HaveOccurred())
50+ certOut := new(bytes.Buffer)
51+ Expect(pem.Encode(certOut, &pem.Block{Type: "CERTIFICATE", Bytes: certBytes})).To(Succeed())
52+ certData := certOut.Bytes()
53+ keyOut := new(bytes.Buffer)
54+ Expect(pem.Encode(keyOut, &pem.Block{Type: "PRIVATE KEY", Bytes: keyBytes})).To(Succeed())
55+ cert, err = tls.X509KeyPair(certData, keyOut.Bytes())
56+ Expect(err).ToNot(HaveOccurred())
57+
58+ certFile, err := os.CreateTemp("", "cert.*.pem")
59+ Expect(err).ToNot(HaveOccurred())
60+ caPath = certFile.Name()
61+ _, err = certFile.Write(certData)
62+ defer certFile.Close()
63+ Expect(err).ToNot(HaveOccurred())
64+})
65+
66+var _ = AfterSuite(func() {
67+ Expect(os.Remove(caPath)).ToNot(HaveOccurred())
68+})
pkg/sessions/session_store_test.go+1−1
@@ -12,7 +12,7 @@ import (
1212 sessionscookie "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/cookie"
1313 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/persistence"
1414 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/redis"
15− . "github.com/onsi/ginkgo"
15+ . "github.com/onsi/ginkgo/v2"
1616 . "github.com/onsi/gomega"
1717)
1818
pkg/sessions/tests/session_store_tests.go+1−1
@@ -12,7 +12,7 @@ import (
1212 sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
1313 cookiesapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/cookies"
1414 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/encryption"
15− . "github.com/onsi/ginkgo"
15+ . "github.com/onsi/ginkgo/v2"
1616 . "github.com/onsi/gomega"
1717)
1818
pkg/upstream/file_test.go+1−2
@@ -8,8 +8,7 @@ import (
88 "os"
99
1010 middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware"
11− . "github.com/onsi/ginkgo"
12− . "github.com/onsi/ginkgo/extensions/table"
11+ . "github.com/onsi/ginkgo/v2"
1312 . "github.com/onsi/gomega"
1413)
1514
pkg/upstream/http_test.go+1−2
@@ -15,8 +15,7 @@ import (
1515 middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware"
1616 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
1717 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/middleware"
18− . "github.com/onsi/ginkgo"
19− . "github.com/onsi/ginkgo/extensions/table"
18+ . "github.com/onsi/ginkgo/v2"
2019 . "github.com/onsi/gomega"
2120 "golang.org/x/net/websocket"
2221)
pkg/upstream/proxy_test.go+1−2
@@ -10,8 +10,7 @@ import (
1010 middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware"
1111 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
1212 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/app/pagewriter"
13− . "github.com/onsi/ginkgo"
14− . "github.com/onsi/ginkgo/extensions/table"
13+ . "github.com/onsi/ginkgo/v2"
1514 . "github.com/onsi/gomega"
1615)
1716
pkg/upstream/rewrite_test.go+1−2
@@ -6,8 +6,7 @@ import (
66 "regexp"
77
88 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/app/pagewriter"
9− . "github.com/onsi/ginkgo"
10− . "github.com/onsi/ginkgo/extensions/table"
9+ . "github.com/onsi/ginkgo/v2"
1110 . "github.com/onsi/gomega"
1211)
1312
pkg/upstream/static_test.go+1−2
@@ -7,8 +7,7 @@ import (
77 "net/http/httptest"
88
99 middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware"
10− . "github.com/onsi/ginkgo"
11− . "github.com/onsi/ginkgo/extensions/table"
10+ . "github.com/onsi/ginkgo/v2"
1211 . "github.com/onsi/gomega"
1312)
1413
pkg/upstream/upstream_suite_test.go+1−1
@@ -13,7 +13,7 @@ import (
1313 "testing"
1414
1515 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
16− . "github.com/onsi/ginkgo"
16+ . "github.com/onsi/ginkgo/v2"
1717 . "github.com/onsi/gomega"
1818 "golang.org/x/net/websocket"
1919)
pkg/validation/allowlist_test.go+1−2
@@ -1,8 +1,7 @@
11package validation
22
33import (
4− . "github.com/onsi/ginkgo"
5− . "github.com/onsi/ginkgo/extensions/table"
4+ . "github.com/onsi/ginkgo/v2"
65 . "github.com/onsi/gomega"
76
87 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
pkg/validation/common_test.go+1−2
@@ -4,8 +4,7 @@ import (
44 "os"
55
66 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
7− . "github.com/onsi/ginkgo"
8− . "github.com/onsi/ginkgo/extensions/table"
7+ . "github.com/onsi/ginkgo/v2"
98 . "github.com/onsi/gomega"
109)
1110
pkg/validation/header_test.go+1−2
@@ -4,8 +4,7 @@ import (
44 "encoding/base64"
55
66 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
7− . "github.com/onsi/ginkgo"
8− . "github.com/onsi/ginkgo/extensions/table"
7+ . "github.com/onsi/ginkgo/v2"
98 . "github.com/onsi/gomega"
109)
1110
pkg/validation/providers_test.go+1−2
@@ -2,8 +2,7 @@ package validation
22
33import (
44 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
5− . "github.com/onsi/ginkgo"
6− . "github.com/onsi/ginkgo/extensions/table"
5+ . "github.com/onsi/ginkgo/v2"
76 . "github.com/onsi/gomega"
87)
98
pkg/validation/sessions_test.go+1−2
@@ -6,8 +6,7 @@ import (
66 "github.com/Bose/minisentinel"
77 "github.com/alicebob/miniredis/v2"
88 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
9− . "github.com/onsi/ginkgo"
10− . "github.com/onsi/ginkgo/extensions/table"
9+ . "github.com/onsi/ginkgo/v2"
1110 . "github.com/onsi/gomega"
1211)
1312
pkg/validation/upstreams_test.go+1−2
@@ -4,8 +4,7 @@ import (
44 "time"
55
66 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
7− . "github.com/onsi/ginkgo"
8− . "github.com/onsi/ginkgo/extensions/table"
7+ . "github.com/onsi/ginkgo/v2"
98 . "github.com/onsi/gomega"
109)
1110
pkg/validation/validation_suite_test.go+1−1
@@ -4,7 +4,7 @@ import (
44 "testing"
55
66 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
7− . "github.com/onsi/ginkgo"
7+ . "github.com/onsi/ginkgo/v2"
88 . "github.com/onsi/gomega"
99)
1010
providers/adfs_test.go+1−2
@@ -16,8 +16,7 @@ import (
1616 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
1717 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
1818 internaloidc "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/providers/oidc"
19− . "github.com/onsi/ginkgo"
20− . "github.com/onsi/ginkgo/extensions/table"
19+ . "github.com/onsi/ginkgo/v2"
2120 . "github.com/onsi/gomega"
2221)
2322
providers/gitlab_test.go+1−2
@@ -9,8 +9,7 @@ import (
99
1010 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
1111 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
12− . "github.com/onsi/ginkgo"
13− . "github.com/onsi/ginkgo/extensions/table"
12+ . "github.com/onsi/ginkgo/v2"
1413 . "github.com/onsi/gomega"
1514)
1615
providers/keycloak_oidc_test.go+1−1
@@ -11,7 +11,7 @@ import (
1111
1212 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
1313 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
14− . "github.com/onsi/ginkgo"
14+ . "github.com/onsi/ginkgo/v2"
1515 . "github.com/onsi/gomega"
1616
1717 internaloidc "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/providers/oidc"
providers/keycloak_test.go+1−2
@@ -10,8 +10,7 @@ import (
1010
1111 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options"
1212 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
13− . "github.com/onsi/ginkgo"
14− . "github.com/onsi/ginkgo/extensions/table"
13+ . "github.com/onsi/ginkgo/v2"
1514 . "github.com/onsi/gomega"
1615)
1716
providers/providers_suite_test.go+1−1
@@ -4,7 +4,7 @@ import (
44 "testing"
55
66 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
7− . "github.com/onsi/ginkgo"
7+ . "github.com/onsi/ginkgo/v2"
88 . "github.com/onsi/gomega"
99)
1010