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>
This commit is contained in:
		
							parent
							
								
									211c605875
								
							
						
					
					
						commit
						343bd61ebb
					
				|  | @ -12,6 +12,7 @@ | ||||||
| - [#4917](https://github.com/oauth2-proxy/oauth2-proxy/pull/4917) Upgraded all modules to the latest version (@pierluigilenoci) | - [#4917](https://github.com/oauth2-proxy/oauth2-proxy/pull/4917) Upgraded all modules to the latest version (@pierluigilenoci) | ||||||
| - [#2570](https://github.com/oauth2-proxy/oauth2-proxy/pull/2570) Set default user agent to oauth2-proxy/$version (from default Golang one) | - [#2570](https://github.com/oauth2-proxy/oauth2-proxy/pull/2570) Set default user agent to oauth2-proxy/$version (from default Golang one) | ||||||
| - [#2674](https://github.com/oauth2-proxy/oauth2-proxy/pull/2674) docs: additional notes about available claims for HeaderValue (@vegetablest) | - [#2674](https://github.com/oauth2-proxy/oauth2-proxy/pull/2674) docs: additional notes about available claims for HeaderValue (@vegetablest) | ||||||
|  | - [#2459](https://github.com/oauth2-proxy/oauth2-proxy/pull/2459) chore(deps): Updated to ginkgo v2 (@kvanzuijlen, @tuunit) | ||||||
| 
 | 
 | ||||||
| # V7.6.0 | # V7.6.0 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										7
									
								
								go.mod
								
								
								
								
							
							
						
						
									
										7
									
								
								go.mod
								
								
								
								
							|  | @ -24,7 +24,7 @@ require ( | ||||||
| 	github.com/oauth2-proxy/mockoidc v0.0.0-20240214162133-caebfff84d25 | 	github.com/oauth2-proxy/mockoidc v0.0.0-20240214162133-caebfff84d25 | ||||||
| 	github.com/oauth2-proxy/tools/reference-gen v0.0.0-20220223111546-d3b50d1a591a | 	github.com/oauth2-proxy/tools/reference-gen v0.0.0-20220223111546-d3b50d1a591a | ||||||
| 	github.com/ohler55/ojg v1.22.0 | 	github.com/ohler55/ojg v1.22.0 | ||||||
| 	github.com/onsi/ginkgo v1.16.5 | 	github.com/onsi/ginkgo/v2 v2.17.2 | ||||||
| 	github.com/onsi/gomega v1.33.1 | 	github.com/onsi/gomega v1.33.1 | ||||||
| 	github.com/pierrec/lz4/v4 v4.1.21 | 	github.com/pierrec/lz4/v4 v4.1.21 | ||||||
| 	github.com/prometheus/client_golang v1.19.1 | 	github.com/prometheus/client_golang v1.19.1 | ||||||
|  | @ -57,14 +57,17 @@ require ( | ||||||
| 	github.com/go-jose/go-jose/v4 v4.0.2 // indirect | 	github.com/go-jose/go-jose/v4 v4.0.2 // indirect | ||||||
| 	github.com/go-logr/logr v1.4.2 // indirect | 	github.com/go-logr/logr v1.4.2 // indirect | ||||||
| 	github.com/go-logr/stdr v1.2.2 // indirect | 	github.com/go-logr/stdr v1.2.2 // indirect | ||||||
|  | 	github.com/go-task/slim-sprig/v3 v3.0.0 // indirect | ||||||
| 	github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect | 	github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect | ||||||
| 	github.com/golang/protobuf v1.5.4 // indirect | 	github.com/golang/protobuf v1.5.4 // indirect | ||||||
|  | 	github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 // indirect | ||||||
| 	github.com/google/s2a-go v0.1.7 // indirect | 	github.com/google/s2a-go v0.1.7 // indirect | ||||||
| 	github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect | 	github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect | ||||||
| 	github.com/googleapis/gax-go/v2 v2.12.4 // indirect | 	github.com/googleapis/gax-go/v2 v2.12.4 // indirect | ||||||
| 	github.com/hashicorp/hcl v1.0.0 // indirect | 	github.com/hashicorp/hcl v1.0.0 // indirect | ||||||
| 	github.com/magiconair/properties v1.8.7 // indirect | 	github.com/magiconair/properties v1.8.7 // indirect | ||||||
| 	github.com/nxadm/tail v1.4.11 // indirect | 	github.com/nxadm/tail v1.4.11 // indirect | ||||||
|  | 	github.com/onsi/ginkgo v1.16.5 // indirect | ||||||
| 	github.com/pelletier/go-toml/v2 v2.2.2 // indirect | 	github.com/pelletier/go-toml/v2 v2.2.2 // indirect | ||||||
| 	github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect | 	github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect | ||||||
| 	github.com/prometheus/client_model v0.6.1 // indirect | 	github.com/prometheus/client_model v0.6.1 // indirect | ||||||
|  | @ -85,11 +88,11 @@ require ( | ||||||
| 	go.uber.org/multierr v1.11.0 // indirect | 	go.uber.org/multierr v1.11.0 // indirect | ||||||
| 	golang.org/x/sys v0.21.0 // indirect | 	golang.org/x/sys v0.21.0 // indirect | ||||||
| 	golang.org/x/text v0.16.0 // indirect | 	golang.org/x/text v0.16.0 // indirect | ||||||
|  | 	golang.org/x/tools v0.22.0 // indirect | ||||||
| 	google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4 // indirect | 	google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4 // indirect | ||||||
| 	google.golang.org/grpc v1.64.0 // indirect | 	google.golang.org/grpc v1.64.0 // indirect | ||||||
| 	google.golang.org/protobuf v1.34.2 // indirect | 	google.golang.org/protobuf v1.34.2 // indirect | ||||||
| 	gopkg.in/ini.v1 v1.67.0 // indirect | 	gopkg.in/ini.v1 v1.67.0 // indirect | ||||||
| 	gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect |  | ||||||
| 	gopkg.in/yaml.v2 v2.4.0 // indirect | 	gopkg.in/yaml.v2 v2.4.0 // indirect | ||||||
| 	gopkg.in/yaml.v3 v3.0.1 // indirect | 	gopkg.in/yaml.v3 v3.0.1 // indirect | ||||||
| 	k8s.io/gengo v0.0.0-20240404160639-a0386bf69313 // indirect | 	k8s.io/gengo v0.0.0-20240404160639-a0386bf69313 // indirect | ||||||
|  |  | ||||||
							
								
								
									
										13
									
								
								go.sum
								
								
								
								
							
							
						
						
									
										13
									
								
								go.sum
								
								
								
								
							|  | @ -76,7 +76,6 @@ github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ4 | ||||||
| github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= | github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= | ||||||
| github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= | github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= | ||||||
| github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= | github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= | ||||||
| github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= |  | ||||||
| github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= | github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= | ||||||
| github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= | github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= | ||||||
| github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= | github.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 | ||||||
| golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= | golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= | ||||||
| golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= | golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= | ||||||
| golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | ||||||
| golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= |  | ||||||
| golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= |  | ||||||
| golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= | golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= | ||||||
| golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= | golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= | ||||||
| golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= | golang.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 | ||||||
| golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||||
| golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||||
| golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||||
| google.golang.org/api v0.183.0 h1:PNMeRDwo1pJdgNcFQ9GstuLe/noWKIc89pRWRLMvLwE= |  | ||||||
| google.golang.org/api v0.183.0/go.mod h1:q43adC5/pHoSZTx5h2mSmdF7NcyfW9JuDyIOJAgS9ZQ= |  | ||||||
| google.golang.org/api v0.185.0 h1:ENEKk1k4jW8SmmaT6RE+ZasxmxezCrD5Vw4npvr+pAU= | google.golang.org/api v0.185.0 h1:ENEKk1k4jW8SmmaT6RE+ZasxmxezCrD5Vw4npvr+pAU= | ||||||
| google.golang.org/api v0.185.0/go.mod h1:HNfvIkJGlgrIlrbYkAm9W9IdkmKZjOTVh33YltygGbg= | google.golang.org/api v0.185.0/go.mod h1:HNfvIkJGlgrIlrbYkAm9W9IdkmKZjOTVh33YltygGbg= | ||||||
| google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= | google.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 | ||||||
| google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= | google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= | ||||||
| google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= | google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= | ||||||
| google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= | google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= | ||||||
| google.golang.org/genproto v0.0.0-20240528184218-531527333157 h1:u7WMYrIrVvs0TF5yaKwKNbcJyySYf+HAIFXxWltJOXE= | google.golang.org/genproto v0.0.0-20240617180043-68d350f18fd4 h1:CUiCqkPw1nNrNQzCCG4WA65m0nAmQiwXHpub3dNyruU= | ||||||
| google.golang.org/genproto/googleapis/api v0.0.0-20240415180920-8c6c420018be h1:Zz7rLWqp0ApfsR/l7+zSHhY3PMiH2xqgxlfYfAfNpoU= | google.golang.org/genproto/googleapis/api v0.0.0-20240415180920-8c6c420018be h1:Zz7rLWqp0ApfsR/l7+zSHhY3PMiH2xqgxlfYfAfNpoU= | ||||||
| google.golang.org/genproto/googleapis/api v0.0.0-20240415180920-8c6c420018be/go.mod h1:dvdCTIoAGbkWbcIKBniID56/7XHTt6WfxXNMxuziJ+w= | google.golang.org/genproto/googleapis/api v0.0.0-20240415180920-8c6c420018be/go.mod h1:dvdCTIoAGbkWbcIKBniID56/7XHTt6WfxXNMxuziJ+w= | ||||||
| google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 h1:1GBuWVLM/KMVUv1t1En5Gs+gFZCNd360GGb4sSxtrhU= |  | ||||||
| google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= |  | ||||||
| google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4 h1:Di6ANFilr+S60a4S61ZM00vLdw0IrQOSMS2/6mrnOU0= | google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4 h1:Di6ANFilr+S60a4S61ZM00vLdw0IrQOSMS2/6mrnOU0= | ||||||
| google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= | google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= | ||||||
| google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= | google.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 | ||||||
| google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= | google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= | ||||||
| google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= | google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= | ||||||
| google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= | google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= | ||||||
| google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= |  | ||||||
| google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= |  | ||||||
| google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= | google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= | ||||||
| google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= | google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.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= | ||||||
| gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||||
| honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||||
| k8s.io/apimachinery v0.30.1 h1:ZQStsEfo4n65yAdlGTfP/uSHMQSoYzU/oeEbkmF7P2U= |  | ||||||
| k8s.io/apimachinery v0.30.1/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= |  | ||||||
| k8s.io/apimachinery v0.30.2 h1:fEMcnBj6qkzzPGSVsAZtQThU62SmQ4ZymlXRC5yFSCg= | k8s.io/apimachinery v0.30.2 h1:fEMcnBj6qkzzPGSVsAZtQThU62SmQ4ZymlXRC5yFSCg= | ||||||
| k8s.io/apimachinery v0.30.2/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= | k8s.io/apimachinery v0.30.2/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= | ||||||
| k8s.io/gengo v0.0.0-20240404160639-a0386bf69313 h1:wBIDZID8ju9pwOiLlV22YYKjFGtiNSWgHf5CnKLRUuM= | k8s.io/gengo v0.0.0-20240404160639-a0386bf69313 h1:wBIDZID8ju9pwOiLlV22YYKjFGtiNSWgHf5CnKLRUuM= | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -9,8 +9,7 @@ import ( | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	. "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options/testutil" | 	. "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options/testutil" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| 	"github.com/onsi/gomega/format" | 	"github.com/onsi/gomega/format" | ||||||
| 	"github.com/spf13/pflag" | 	"github.com/spf13/pflag" | ||||||
|  |  | ||||||
|  | @ -576,8 +576,11 @@ type SignInPageTest struct { | ||||||
| 	signInProviderRegexp *regexp.Regexp | 	signInProviderRegexp *regexp.Regexp | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const signInRedirectPattern = `<input type="hidden" name="rd" value="(.*)">` | const ( | ||||||
| const signInSkipProvider = `>Found<` | 	signInRedirectPattern = `<input type="hidden" name="rd" value="(.*)">` | ||||||
|  | 	signInSkipProvider    = `>Found<` | ||||||
|  | 	patternNotFound       = "Did not find pattern in body: " | ||||||
|  | ) | ||||||
| 
 | 
 | ||||||
| func NewSignInPageTest(skipProvider bool) (*SignInPageTest, error) { | func NewSignInPageTest(skipProvider bool) (*SignInPageTest, error) { | ||||||
| 	var sipTest SignInPageTest | 	var sipTest SignInPageTest | ||||||
|  | @ -720,7 +723,7 @@ func TestSignInPageIncludesTargetRedirect(t *testing.T) { | ||||||
| 
 | 
 | ||||||
| 	match := sipTest.signInRegexp.FindStringSubmatch(body) | 	match := sipTest.signInRegexp.FindStringSubmatch(body) | ||||||
| 	if match == nil { | 	if match == nil { | ||||||
| 		t.Fatal("Did not find pattern in body: " + | 		t.Fatal(patternNotFound + | ||||||
| 			signInRedirectPattern + "\nBody:\n" + body) | 			signInRedirectPattern + "\nBody:\n" + body) | ||||||
| 	} | 	} | ||||||
| 	if match[1] != endpoint { | 	if match[1] != endpoint { | ||||||
|  | @ -750,7 +753,7 @@ func TestSignInPageDirectAccessRedirectsToRoot(t *testing.T) { | ||||||
| 
 | 
 | ||||||
| 	match := sipTest.signInRegexp.FindStringSubmatch(body) | 	match := sipTest.signInRegexp.FindStringSubmatch(body) | ||||||
| 	if match == nil { | 	if match == nil { | ||||||
| 		t.Fatal("Did not find pattern in body: " + | 		t.Fatal(patternNotFound + | ||||||
| 			signInRedirectPattern + "\nBody:\n" + body) | 			signInRedirectPattern + "\nBody:\n" + body) | ||||||
| 	} | 	} | ||||||
| 	if match[1] != "/" { | 	if match[1] != "/" { | ||||||
|  | @ -771,7 +774,7 @@ func TestSignInPageSkipProvider(t *testing.T) { | ||||||
| 
 | 
 | ||||||
| 	match := sipTest.signInProviderRegexp.FindStringSubmatch(body) | 	match := sipTest.signInProviderRegexp.FindStringSubmatch(body) | ||||||
| 	if match == nil { | 	if match == nil { | ||||||
| 		t.Fatal("Did not find pattern in body: " + | 		t.Fatal(patternNotFound + | ||||||
| 			signInSkipProvider + "\nBody:\n" + body) | 			signInSkipProvider + "\nBody:\n" + body) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | @ -789,7 +792,7 @@ func TestSignInPageSkipProviderDirect(t *testing.T) { | ||||||
| 
 | 
 | ||||||
| 	match := sipTest.signInProviderRegexp.FindStringSubmatch(body) | 	match := sipTest.signInProviderRegexp.FindStringSubmatch(body) | ||||||
| 	if match == nil { | 	if match == nil { | ||||||
| 		t.Fatal("Did not find pattern in body: " + | 		t.Fatal(patternNotFound + | ||||||
| 			signInSkipProvider + "\nBody:\n" + body) | 			signInSkipProvider + "\nBody:\n" + body) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | @ -1212,7 +1215,7 @@ func TestAuthOnlyEndpointSetXAuthRequestHeaders(t *testing.T) { | ||||||
| 
 | 
 | ||||||
| 	pcTest.rw = httptest.NewRecorder() | 	pcTest.rw = httptest.NewRecorder() | ||||||
| 	pcTest.req, _ = http.NewRequest("GET", | 	pcTest.req, _ = http.NewRequest("GET", | ||||||
| 		pcTest.opts.ProxyPrefix+"/auth", nil) | 		pcTest.opts.ProxyPrefix+authOnlyPath, nil) | ||||||
| 
 | 
 | ||||||
| 	created := time.Now() | 	created := time.Now() | ||||||
| 	startSession := &sessions.SessionState{ | 	startSession := &sessions.SessionState{ | ||||||
|  | @ -1305,7 +1308,7 @@ func TestAuthOnlyEndpointSetBasicAuthTrueRequestHeaders(t *testing.T) { | ||||||
| 
 | 
 | ||||||
| 	pcTest.rw = httptest.NewRecorder() | 	pcTest.rw = httptest.NewRecorder() | ||||||
| 	pcTest.req, _ = http.NewRequest("GET", | 	pcTest.req, _ = http.NewRequest("GET", | ||||||
| 		pcTest.opts.ProxyPrefix+"/auth", nil) | 		pcTest.opts.ProxyPrefix+authOnlyPath, nil) | ||||||
| 
 | 
 | ||||||
| 	created := time.Now() | 	created := time.Now() | ||||||
| 	startSession := &sessions.SessionState{ | 	startSession := &sessions.SessionState{ | ||||||
|  | @ -1385,7 +1388,7 @@ func TestAuthOnlyEndpointSetBasicAuthFalseRequestHeaders(t *testing.T) { | ||||||
| 
 | 
 | ||||||
| 	pcTest.rw = httptest.NewRecorder() | 	pcTest.rw = httptest.NewRecorder() | ||||||
| 	pcTest.req, _ = http.NewRequest("GET", | 	pcTest.req, _ = http.NewRequest("GET", | ||||||
| 		pcTest.opts.ProxyPrefix+"/auth", nil) | 		pcTest.opts.ProxyPrefix+authOnlyPath, nil) | ||||||
| 
 | 
 | ||||||
| 	created := time.Now() | 	created := time.Now() | ||||||
| 	startSession := &sessions.SessionState{ | 	startSession := &sessions.SessionState{ | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"net/http" | 	"net/http" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -5,8 +5,7 @@ import ( | ||||||
| 	"errors" | 	"errors" | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -3,8 +3,7 @@ package options | ||||||
| import ( | import ( | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -7,8 +7,7 @@ import ( | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	. "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options/testutil" | 	. "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options/testutil" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| 	"github.com/spf13/pflag" | 	"github.com/spf13/pflag" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| package testutil | package testutil | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ import ( | ||||||
| 	"path" | 	"path" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ import ( | ||||||
| 	"net/http/httptest" | 	"net/http/httptest" | ||||||
| 
 | 
 | ||||||
| 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -9,8 +9,7 @@ import ( | ||||||
| 	"os" | 	"os" | ||||||
| 	"path/filepath" | 	"path/filepath" | ||||||
| 
 | 
 | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -12,8 +12,7 @@ import ( | ||||||
| 	"strings" | 	"strings" | ||||||
| 
 | 
 | ||||||
| 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ import ( | ||||||
| 	"path/filepath" | 	"path/filepath" | ||||||
| 
 | 
 | ||||||
| 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ import ( | ||||||
| 	"os" | 	"os" | ||||||
| 	"path/filepath" | 	"path/filepath" | ||||||
| 
 | 
 | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,8 +4,7 @@ import ( | ||||||
| 	"net/http" | 	"net/http" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | @ -20,6 +19,7 @@ var _ = Describe("Director Suite", func() { | ||||||
| 		expectedRedirect string | 		expectedRedirect string | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	const fooBar = "/foo/bar" | ||||||
| 	DescribeTable("GetRedirect", | 	DescribeTable("GetRedirect", | ||||||
| 		func(in getRedirectTableInput) { | 		func(in getRedirectTableInput) { | ||||||
| 			appDirector := NewAppDirector(AppDirectorOpts{ | 			appDirector := NewAppDirector(AppDirectorOpts{ | ||||||
|  | @ -42,11 +42,11 @@ var _ = Describe("Director Suite", func() { | ||||||
| 			Expect(redirect).To(Equal(in.expectedRedirect)) | 			Expect(redirect).To(Equal(in.expectedRedirect)) | ||||||
| 		}, | 		}, | ||||||
| 		Entry("Request outside of the proxy prefix, redirects to original request", getRedirectTableInput{ | 		Entry("Request outside of the proxy prefix, redirects to original request", getRedirectTableInput{ | ||||||
| 			requestURL:       "/foo/bar", | 			requestURL:       fooBar, | ||||||
| 			headers:          nil, | 			headers:          nil, | ||||||
| 			reverseProxy:     false, | 			reverseProxy:     false, | ||||||
| 			validator:        testValidator(true), | 			validator:        testValidator(true), | ||||||
| 			expectedRedirect: "/foo/bar", | 			expectedRedirect: fooBar, | ||||||
| 		}), | 		}), | ||||||
| 		Entry("Request with query, preserves the query", getRedirectTableInput{ | 		Entry("Request with query, preserves the query", getRedirectTableInput{ | ||||||
| 			requestURL:       "/foo?bar", | 			requestURL:       "/foo?bar", | ||||||
|  | @ -56,7 +56,7 @@ var _ = Describe("Director Suite", func() { | ||||||
| 			expectedRedirect: "/foo?bar", | 			expectedRedirect: "/foo?bar", | ||||||
| 		}), | 		}), | ||||||
| 		Entry("Request under the proxy prefix, redirects to root", getRedirectTableInput{ | 		Entry("Request under the proxy prefix, redirects to root", getRedirectTableInput{ | ||||||
| 			requestURL:       testProxyPrefix + "/foo/bar", | 			requestURL:       testProxyPrefix + fooBar, | ||||||
| 			headers:          nil, | 			headers:          nil, | ||||||
| 			reverseProxy:     false, | 			reverseProxy:     false, | ||||||
| 			validator:        testValidator(true), | 			validator:        testValidator(true), | ||||||
|  | @ -67,7 +67,7 @@ var _ = Describe("Director Suite", func() { | ||||||
| 			headers: map[string]string{ | 			headers: map[string]string{ | ||||||
| 				"X-Forwarded-Proto": "https", | 				"X-Forwarded-Proto": "https", | ||||||
| 				"X-Forwarded-Host":  "a-service.example.com", | 				"X-Forwarded-Host":  "a-service.example.com", | ||||||
| 				"X-Forwarded-Uri":   "/foo/bar", | 				"X-Forwarded-Uri":   fooBar, | ||||||
| 			}, | 			}, | ||||||
| 			reverseProxy:     true, | 			reverseProxy:     true, | ||||||
| 			validator:        testValidator(true), | 			validator:        testValidator(true), | ||||||
|  | @ -78,29 +78,29 @@ var _ = Describe("Director Suite", func() { | ||||||
| 			headers: map[string]string{ | 			headers: map[string]string{ | ||||||
| 				"X-Forwarded-Proto": "https", | 				"X-Forwarded-Proto": "https", | ||||||
| 				"X-Forwarded-Host":  "a-service.example.com", | 				"X-Forwarded-Host":  "a-service.example.com", | ||||||
| 				"X-Forwarded-Uri":   "/foo/bar", | 				"X-Forwarded-Uri":   fooBar, | ||||||
| 			}, | 			}, | ||||||
| 			reverseProxy:     false, | 			reverseProxy:     false, | ||||||
| 			validator:        testValidator(true), | 			validator:        testValidator(true), | ||||||
| 			expectedRedirect: "/foo?bar", | 			expectedRedirect: "/foo?bar", | ||||||
| 		}), | 		}), | ||||||
| 		Entry("Proxied request with headers, under ProxyPrefix, redirects to  root", getRedirectTableInput{ | 		Entry("Proxied request with headers, under ProxyPrefix, redirects to  root", getRedirectTableInput{ | ||||||
| 			requestURL: "https://oauth.example.com" + testProxyPrefix + "/foo/bar", | 			requestURL: "https://oauth.example.com" + testProxyPrefix + fooBar, | ||||||
| 			headers: map[string]string{ | 			headers: map[string]string{ | ||||||
| 				"X-Forwarded-Proto": "https", | 				"X-Forwarded-Proto": "https", | ||||||
| 				"X-Forwarded-Host":  "a-service.example.com", | 				"X-Forwarded-Host":  "a-service.example.com", | ||||||
| 				"X-Forwarded-Uri":   testProxyPrefix + "/foo/bar", | 				"X-Forwarded-Uri":   testProxyPrefix + fooBar, | ||||||
| 			}, | 			}, | ||||||
| 			reverseProxy:     true, | 			reverseProxy:     true, | ||||||
| 			validator:        testValidator(true), | 			validator:        testValidator(true), | ||||||
| 			expectedRedirect: "https://a-service.example.com/", | 			expectedRedirect: "https://a-service.example.com/", | ||||||
| 		}), | 		}), | ||||||
| 		Entry("Proxied request with port, under ProxyPrefix, redirects to  root", getRedirectTableInput{ | 		Entry("Proxied request with port, under ProxyPrefix, redirects to  root", getRedirectTableInput{ | ||||||
| 			requestURL: "https://oauth.example.com" + testProxyPrefix + "/foo/bar", | 			requestURL: "https://oauth.example.com" + testProxyPrefix + fooBar, | ||||||
| 			headers: map[string]string{ | 			headers: map[string]string{ | ||||||
| 				"X-Forwarded-Proto": "https", | 				"X-Forwarded-Proto": "https", | ||||||
| 				"X-Forwarded-Host":  "a-service.example.com:8443", | 				"X-Forwarded-Host":  "a-service.example.com:8443", | ||||||
| 				"X-Forwarded-Uri":   testProxyPrefix + "/foo/bar", | 				"X-Forwarded-Uri":   testProxyPrefix + fooBar, | ||||||
| 			}, | 			}, | ||||||
| 			reverseProxy:     true, | 			reverseProxy:     true, | ||||||
| 			validator:        testValidator(true), | 			validator:        testValidator(true), | ||||||
|  | @ -167,7 +167,7 @@ var _ = Describe("Director Suite", func() { | ||||||
| 			headers: map[string]string{ | 			headers: map[string]string{ | ||||||
| 				"X-Forwarded-Proto": "https", | 				"X-Forwarded-Proto": "https", | ||||||
| 				"X-Forwarded-Host":  "a-service.example.com", | 				"X-Forwarded-Host":  "a-service.example.com", | ||||||
| 				"X-Forwarded-Uri":   "/foo/bar", | 				"X-Forwarded-Uri":   fooBar, | ||||||
| 			}, | 			}, | ||||||
| 			reverseProxy:     true, | 			reverseProxy:     true, | ||||||
| 			validator:        testValidator(false, "https://a-service.example.com/foo/bar"), | 			validator:        testValidator(false, "https://a-service.example.com/foo/bar"), | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,8 +6,7 @@ import ( | ||||||
| 	"os" | 	"os" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/util" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/util" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ package basic | ||||||
| import ( | import ( | ||||||
| 	"os" | 	"os" | ||||||
| 
 | 
 | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| 	"github.com/onsi/gomega/types" | 	"github.com/onsi/gomega/types" | ||||||
| ) | ) | ||||||
|  | @ -17,6 +17,17 @@ const ( | ||||||
| 	user2Password = "us3r2P455W0Rd!" | 	user2Password = "us3r2P455W0Rd!" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | var ( | ||||||
|  | 	fileNames []string | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | var _ = AfterSuite(func() { | ||||||
|  | 	for _, v := range fileNames { | ||||||
|  | 		err := os.Remove(v) | ||||||
|  | 		Expect(err).ToNot(HaveOccurred()) | ||||||
|  | 	} | ||||||
|  | }) | ||||||
|  | 
 | ||||||
| var _ = Describe("HTPasswd Suite", func() { | var _ = Describe("HTPasswd Suite", func() { | ||||||
| 	Context("with an HTPassword Validator", func() { | 	Context("with an HTPassword Validator", func() { | ||||||
| 		assertHtpasswdMapFromFile := func(filePath string) { | 		assertHtpasswdMapFromFile := func(filePath string) { | ||||||
|  | @ -99,15 +110,6 @@ var _ = Describe("HTPasswd Suite", func() { | ||||||
| 				const filePathPrefix = "htpasswd-file-updated-" | 				const filePathPrefix = "htpasswd-file-updated-" | ||||||
| 				const adminUserHtpasswdEntry = "admin:$2y$05$SXWrNM7ldtbRzBvUC3VXyOvUeiUcP45XPwM93P5eeGOEPIiAZmJjC" | 				const adminUserHtpasswdEntry = "admin:$2y$05$SXWrNM7ldtbRzBvUC3VXyOvUeiUcP45XPwM93P5eeGOEPIiAZmJjC" | ||||||
| 				const user1HtpasswdEntry = "user1:$2y$05$/sZYJOk8.3Etg4V6fV7puuXfCJLmV5Q7u3xvKpjBSJUka.t2YtmmG" | 				const user1HtpasswdEntry = "user1:$2y$05$/sZYJOk8.3Etg4V6fV7puuXfCJLmV5Q7u3xvKpjBSJUka.t2YtmmG" | ||||||
| 				var fileNames []string |  | ||||||
| 
 |  | ||||||
| 				AfterSuite(func() { |  | ||||||
| 					for _, v := range fileNames { |  | ||||||
| 						err := os.Remove(v) |  | ||||||
| 						Expect(err).ToNot(HaveOccurred()) |  | ||||||
| 					} |  | ||||||
| 
 |  | ||||||
| 				}) |  | ||||||
| 
 | 
 | ||||||
| 				type htpasswdUpdate struct { | 				type htpasswdUpdate struct { | ||||||
| 					testText              string | 					testText              string | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ import ( | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/clock" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/clock" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ import ( | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -8,8 +8,7 @@ import ( | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 
 | 
 | ||||||
| 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ import ( | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/encryption" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/encryption" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ import ( | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/encryption" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/encryption" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -7,8 +7,7 @@ import ( | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | 	sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -12,7 +12,7 @@ import ( | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/util" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/util" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"errors" | 	"errors" | ||||||
| 
 | 
 | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -9,8 +9,7 @@ import ( | ||||||
| 	"os" | 	"os" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| 	. "github.com/onsi/gomega/gleak" | 	. "github.com/onsi/gomega/gleak" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | @ -7,8 +7,7 @@ import ( | ||||||
| 
 | 
 | ||||||
| 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | ||||||
| 	sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | 	sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -8,8 +8,7 @@ import ( | ||||||
| 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | 	sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,8 +4,7 @@ import ( | ||||||
| 	"net/http" | 	"net/http" | ||||||
| 	"net/http/httptest" | 	"net/http/httptest" | ||||||
| 
 | 
 | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -17,8 +17,7 @@ import ( | ||||||
| 	"github.com/golang-jwt/jwt/v5" | 	"github.com/golang-jwt/jwt/v5" | ||||||
| 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | ||||||
| 	sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | 	sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| 	k8serrors "k8s.io/apimachinery/pkg/util/errors" | 	k8serrors "k8s.io/apimachinery/pkg/util/errors" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | @ -5,8 +5,7 @@ import ( | ||||||
| 	"net/http/httptest" | 	"net/http/httptest" | ||||||
| 	"os" | 	"os" | ||||||
| 
 | 
 | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| 
 | 
 | ||||||
| 	"github.com/prometheus/client_golang/prometheus" | 	"github.com/prometheus/client_golang/prometheus" | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ import ( | ||||||
| 
 | 
 | ||||||
| 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,8 +6,7 @@ import ( | ||||||
| 	"net/http" | 	"net/http" | ||||||
| 	"net/http/httptest" | 	"net/http/httptest" | ||||||
| 
 | 
 | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,8 +6,7 @@ import ( | ||||||
| 	"net/http/httptest" | 	"net/http/httptest" | ||||||
| 
 | 
 | ||||||
| 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -8,8 +8,7 @@ import ( | ||||||
| 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ import ( | ||||||
| 
 | 
 | ||||||
| 	"github.com/google/uuid" | 	"github.com/google/uuid" | ||||||
| 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -3,8 +3,7 @@ package middleware | ||||||
| import ( | import ( | ||||||
| 	"errors" | 	"errors" | ||||||
| 
 | 
 | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -13,8 +13,7 @@ import ( | ||||||
| 	sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | 	sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/clock" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/clock" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/providers" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/providers" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -7,8 +7,7 @@ import ( | ||||||
| 	"net/http" | 	"net/http" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/mockoidc" | 	"github.com/oauth2-proxy/mockoidc" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,8 +6,7 @@ import ( | ||||||
| 
 | 
 | ||||||
| 	"github.com/golang-jwt/jwt/v5" | 	"github.com/golang-jwt/jwt/v5" | ||||||
| 	"github.com/oauth2-proxy/mockoidc" | 	"github.com/oauth2-proxy/mockoidc" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -9,7 +9,7 @@ import ( | ||||||
| 
 | 
 | ||||||
| 	"github.com/coreos/go-oidc/v3/oidc" | 	"github.com/coreos/go-oidc/v3/oidc" | ||||||
| 	"github.com/go-jose/go-jose/v3" | 	"github.com/go-jose/go-jose/v3" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -10,8 +10,7 @@ import ( | ||||||
| 	"net/url" | 	"net/url" | ||||||
| 	"sync/atomic" | 	"sync/atomic" | ||||||
| 
 | 
 | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -11,7 +11,7 @@ import ( | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/version" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/version" | ||||||
| 
 | 
 | ||||||
| 	"github.com/bitly/go-simplejson" | 	"github.com/bitly/go-simplejson" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,8 +4,7 @@ import ( | ||||||
| 	"errors" | 	"errors" | ||||||
| 	"net/http" | 	"net/http" | ||||||
| 
 | 
 | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ import ( | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/requests/util" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/requests/util" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -12,7 +12,7 @@ import ( | ||||||
| 	sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | 	sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/tests" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/tests" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| 	"github.com/stretchr/testify/assert" | 	"github.com/stretchr/testify/assert" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ import ( | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | 	sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/tests" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/tests" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| var _ = Describe("Persistence Manager Tests", func() { | var _ = Describe("Persistence Manager Tests", func() { | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -8,8 +8,7 @@ import ( | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -9,7 +9,7 @@ import ( | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/encryption" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/encryption" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/redis" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/redis" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,10 +1,6 @@ | ||||||
| package redis | package redis | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"bytes" |  | ||||||
| 	"crypto/tls" |  | ||||||
| 	"encoding/pem" |  | ||||||
| 	"os" |  | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	"github.com/Bose/minisentinel" | 	"github.com/Bose/minisentinel" | ||||||
|  | @ -13,43 +9,15 @@ import ( | ||||||
| 	sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | 	sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/persistence" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/persistence" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/tests" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/tests" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/util" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| const redisUsername = "testuser" | const ( | ||||||
| const redisPassword = "0123456789abcdefghijklmnopqrstuv" | 	redisUsername = "testuser" | ||||||
| 
 | 	redisPassword = "0123456789abcdefghijklmnopqrstuv" | ||||||
| var ( |  | ||||||
| 	cert   tls.Certificate |  | ||||||
| 	caPath string |  | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| var _ = BeforeSuite(func() { |  | ||||||
| 	var err error |  | ||||||
| 	certBytes, keyBytes, err := util.GenerateCert("127.0.0.1") |  | ||||||
| 	Expect(err).ToNot(HaveOccurred()) |  | ||||||
| 	certOut := new(bytes.Buffer) |  | ||||||
| 	Expect(pem.Encode(certOut, &pem.Block{Type: "CERTIFICATE", Bytes: certBytes})).To(Succeed()) |  | ||||||
| 	certData := certOut.Bytes() |  | ||||||
| 	keyOut := new(bytes.Buffer) |  | ||||||
| 	Expect(pem.Encode(keyOut, &pem.Block{Type: "PRIVATE KEY", Bytes: keyBytes})).To(Succeed()) |  | ||||||
| 	cert, err = tls.X509KeyPair(certData, keyOut.Bytes()) |  | ||||||
| 	Expect(err).ToNot(HaveOccurred()) |  | ||||||
| 
 |  | ||||||
| 	certFile, err := os.CreateTemp("", "cert.*.pem") |  | ||||||
| 	Expect(err).ToNot(HaveOccurred()) |  | ||||||
| 	caPath = certFile.Name() |  | ||||||
| 	_, err = certFile.Write(certData) |  | ||||||
| 	defer certFile.Close() |  | ||||||
| 	Expect(err).ToNot(HaveOccurred()) |  | ||||||
| }) |  | ||||||
| 
 |  | ||||||
| var _ = AfterSuite(func() { |  | ||||||
| 	Expect(os.Remove(caPath)).ToNot(HaveOccurred()) |  | ||||||
| }) |  | ||||||
| 
 |  | ||||||
| var _ = Describe("Redis SessionStore Tests", func() { | var _ = Describe("Redis SessionStore Tests", func() { | ||||||
| 	// helper interface to allow us to close client connections
 | 	// helper interface to allow us to close client connections
 | ||||||
| 	// All non-nil redis clients should implement this
 | 	// All non-nil redis clients should implement this
 | ||||||
|  | @ -79,11 +47,12 @@ var _ = Describe("Redis SessionStore Tests", func() { | ||||||
| 		} | 		} | ||||||
| 	}) | 	}) | ||||||
| 
 | 
 | ||||||
|  | 	const redisProtocol = "redis://" | ||||||
| 	tests.RunSessionStoreTests( | 	tests.RunSessionStoreTests( | ||||||
| 		func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { | 		func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { | ||||||
| 			// Set the connection URL
 | 			// Set the connection URL
 | ||||||
| 			opts.Type = options.RedisSessionStoreType | 			opts.Type = options.RedisSessionStoreType | ||||||
| 			opts.Redis.ConnectionURL = "redis://" + mr.Addr() | 			opts.Redis.ConnectionURL = redisProtocol + mr.Addr() | ||||||
| 
 | 
 | ||||||
| 			// Capture the session store so that we can close the client
 | 			// Capture the session store so that we can close the client
 | ||||||
| 			var err error | 			var err error | ||||||
|  | @ -104,14 +73,10 @@ var _ = Describe("Redis SessionStore Tests", func() { | ||||||
| 			Expect(ms.Start()).To(Succeed()) | 			Expect(ms.Start()).To(Succeed()) | ||||||
| 		}) | 		}) | ||||||
| 
 | 
 | ||||||
| 		AfterEach(func() { |  | ||||||
| 			ms.Close() |  | ||||||
| 		}) |  | ||||||
| 
 |  | ||||||
| 		tests.RunSessionStoreTests( | 		tests.RunSessionStoreTests( | ||||||
| 			func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { | 			func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { | ||||||
| 				// Set the sentinel connection URL
 | 				// Set the sentinel connection URL
 | ||||||
| 				sentinelAddr := "redis://" + ms.Addr() | 				sentinelAddr := redisProtocol + ms.Addr() | ||||||
| 				opts.Type = options.RedisSessionStoreType | 				opts.Type = options.RedisSessionStoreType | ||||||
| 				opts.Redis.SentinelConnectionURLs = []string{sentinelAddr} | 				opts.Redis.SentinelConnectionURLs = []string{sentinelAddr} | ||||||
| 				opts.Redis.UseSentinel = true | 				opts.Redis.UseSentinel = true | ||||||
|  | @ -132,7 +97,7 @@ var _ = Describe("Redis SessionStore Tests", func() { | ||||||
| 	Context("with cluster", func() { | 	Context("with cluster", func() { | ||||||
| 		tests.RunSessionStoreTests( | 		tests.RunSessionStoreTests( | ||||||
| 			func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { | 			func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { | ||||||
| 				clusterAddr := "redis://" + mr.Addr() | 				clusterAddr := redisProtocol + mr.Addr() | ||||||
| 				opts.Type = options.RedisSessionStoreType | 				opts.Type = options.RedisSessionStoreType | ||||||
| 				opts.Redis.ClusterConnectionURLs = []string{clusterAddr} | 				opts.Redis.ClusterConnectionURLs = []string{clusterAddr} | ||||||
| 				opts.Redis.UseCluster = true | 				opts.Redis.UseCluster = true | ||||||
|  | @ -162,7 +127,7 @@ var _ = Describe("Redis SessionStore Tests", func() { | ||||||
| 			func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { | 			func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { | ||||||
| 				// Set the connection URL
 | 				// Set the connection URL
 | ||||||
| 				opts.Type = options.RedisSessionStoreType | 				opts.Type = options.RedisSessionStoreType | ||||||
| 				opts.Redis.ConnectionURL = "redis://" + mr.Addr() | 				opts.Redis.ConnectionURL = redisProtocol + mr.Addr() | ||||||
| 				opts.Redis.Password = redisPassword | 				opts.Redis.Password = redisPassword | ||||||
| 
 | 
 | ||||||
| 				// Capture the session store so that we can close the client
 | 				// Capture the session store so that we can close the client
 | ||||||
|  | @ -184,14 +149,10 @@ var _ = Describe("Redis SessionStore Tests", func() { | ||||||
| 				Expect(ms.Start()).To(Succeed()) | 				Expect(ms.Start()).To(Succeed()) | ||||||
| 			}) | 			}) | ||||||
| 
 | 
 | ||||||
| 			AfterEach(func() { |  | ||||||
| 				ms.Close() |  | ||||||
| 			}) |  | ||||||
| 
 |  | ||||||
| 			tests.RunSessionStoreTests( | 			tests.RunSessionStoreTests( | ||||||
| 				func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { | 				func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { | ||||||
| 					// Set the sentinel connection URL
 | 					// Set the sentinel connection URL
 | ||||||
| 					sentinelAddr := "redis://" + ms.Addr() | 					sentinelAddr := redisProtocol + ms.Addr() | ||||||
| 					opts.Type = options.RedisSessionStoreType | 					opts.Type = options.RedisSessionStoreType | ||||||
| 					opts.Redis.SentinelConnectionURLs = []string{sentinelAddr} | 					opts.Redis.SentinelConnectionURLs = []string{sentinelAddr} | ||||||
| 					opts.Redis.UseSentinel = true | 					opts.Redis.UseSentinel = true | ||||||
|  | @ -213,7 +174,7 @@ var _ = Describe("Redis SessionStore Tests", func() { | ||||||
| 		Context("with cluster", func() { | 		Context("with cluster", func() { | ||||||
| 			tests.RunSessionStoreTests( | 			tests.RunSessionStoreTests( | ||||||
| 				func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { | 				func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { | ||||||
| 					clusterAddr := "redis://" + mr.Addr() | 					clusterAddr := redisProtocol + mr.Addr() | ||||||
| 					opts.Type = options.RedisSessionStoreType | 					opts.Type = options.RedisSessionStoreType | ||||||
| 					opts.Redis.ClusterConnectionURLs = []string{clusterAddr} | 					opts.Redis.ClusterConnectionURLs = []string{clusterAddr} | ||||||
| 					opts.Redis.UseCluster = true | 					opts.Redis.UseCluster = true | ||||||
|  | @ -281,190 +242,4 @@ var _ = Describe("Redis SessionStore Tests", func() { | ||||||
| 			) | 			) | ||||||
| 		}) | 		}) | ||||||
| 	}) | 	}) | ||||||
| 
 |  | ||||||
| 	Context("with TLS connection", func() { |  | ||||||
| 		BeforeEach(func() { |  | ||||||
| 			mr.Close() |  | ||||||
| 
 |  | ||||||
| 			var err error |  | ||||||
| 			mr, err = miniredis.RunTLS(&tls.Config{Certificates: []tls.Certificate{cert}}) |  | ||||||
| 			Expect(err).ToNot(HaveOccurred()) |  | ||||||
| 		}) |  | ||||||
| 		AfterEach(func() { |  | ||||||
| 			mr.Close() |  | ||||||
| 
 |  | ||||||
| 			var err error |  | ||||||
| 			mr, err = miniredis.Run() |  | ||||||
| 			Expect(err).ToNot(HaveOccurred()) |  | ||||||
| 		}) |  | ||||||
| 
 |  | ||||||
| 		Context("with standalone", func() { |  | ||||||
| 			tests.RunSessionStoreTests( |  | ||||||
| 				func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { |  | ||||||
| 					// Set the connection URL
 |  | ||||||
| 					opts.Type = options.RedisSessionStoreType |  | ||||||
| 					opts.Redis.ConnectionURL = "rediss://" + mr.Addr() |  | ||||||
| 					opts.Redis.CAPath = caPath |  | ||||||
| 
 |  | ||||||
| 					// Capture the session store so that we can close the client
 |  | ||||||
| 					ss, err := NewRedisSessionStore(opts, cookieOpts) |  | ||||||
| 					return ss, err |  | ||||||
| 				}, |  | ||||||
| 				func(d time.Duration) error { |  | ||||||
| 					mr.FastForward(d) |  | ||||||
| 					return nil |  | ||||||
| 				}, |  | ||||||
| 			) |  | ||||||
| 		}) |  | ||||||
| 
 |  | ||||||
| 		Context("with cluster", func() { |  | ||||||
| 			tests.RunSessionStoreTests( |  | ||||||
| 				func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { |  | ||||||
| 					clusterAddr := "rediss://" + mr.Addr() |  | ||||||
| 					opts.Type = options.RedisSessionStoreType |  | ||||||
| 					opts.Redis.ClusterConnectionURLs = []string{clusterAddr} |  | ||||||
| 					opts.Redis.UseCluster = true |  | ||||||
| 					opts.Redis.CAPath = caPath |  | ||||||
| 
 |  | ||||||
| 					// Capture the session store so that we can close the client
 |  | ||||||
| 					var err error |  | ||||||
| 					ss, err = NewRedisSessionStore(opts, cookieOpts) |  | ||||||
| 					return ss, err |  | ||||||
| 				}, |  | ||||||
| 				func(d time.Duration) error { |  | ||||||
| 					mr.FastForward(d) |  | ||||||
| 					return nil |  | ||||||
| 				}, |  | ||||||
| 			) |  | ||||||
| 		}) |  | ||||||
| 	}) |  | ||||||
| 
 |  | ||||||
| 	Context("with insecure TLS connection", func() { |  | ||||||
| 		BeforeEach(func() { |  | ||||||
| 			mr.Close() |  | ||||||
| 
 |  | ||||||
| 			var err error |  | ||||||
| 			mr, err = miniredis.RunTLS(&tls.Config{Certificates: []tls.Certificate{cert}}) |  | ||||||
| 			Expect(err).ToNot(HaveOccurred()) |  | ||||||
| 		}) |  | ||||||
| 		AfterEach(func() { |  | ||||||
| 			mr.Close() |  | ||||||
| 
 |  | ||||||
| 			var err error |  | ||||||
| 			mr, err = miniredis.Run() |  | ||||||
| 			Expect(err).ToNot(HaveOccurred()) |  | ||||||
| 		}) |  | ||||||
| 
 |  | ||||||
| 		Context("with standalone", func() { |  | ||||||
| 			tests.RunSessionStoreTests( |  | ||||||
| 				func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { |  | ||||||
| 					// Set the connection URL
 |  | ||||||
| 					opts.Type = options.RedisSessionStoreType |  | ||||||
| 					opts.Redis.ConnectionURL = "rediss://" + mr.Addr() |  | ||||||
| 					opts.Redis.InsecureSkipTLSVerify = true |  | ||||||
| 
 |  | ||||||
| 					// Capture the session store so that we can close the client
 |  | ||||||
| 					ss, err := NewRedisSessionStore(opts, cookieOpts) |  | ||||||
| 					return ss, err |  | ||||||
| 				}, |  | ||||||
| 				func(d time.Duration) error { |  | ||||||
| 					mr.FastForward(d) |  | ||||||
| 					return nil |  | ||||||
| 				}, |  | ||||||
| 			) |  | ||||||
| 		}) |  | ||||||
| 
 |  | ||||||
| 		Context("with cluster", func() { |  | ||||||
| 			tests.RunSessionStoreTests( |  | ||||||
| 				func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { |  | ||||||
| 					clusterAddr := "rediss://" + mr.Addr() |  | ||||||
| 					opts.Type = options.RedisSessionStoreType |  | ||||||
| 					opts.Redis.ClusterConnectionURLs = []string{clusterAddr} |  | ||||||
| 					opts.Redis.UseCluster = true |  | ||||||
| 					opts.Redis.InsecureSkipTLSVerify = true |  | ||||||
| 
 |  | ||||||
| 					// Capture the session store so that we can close the client
 |  | ||||||
| 					var err error |  | ||||||
| 					ss, err = NewRedisSessionStore(opts, cookieOpts) |  | ||||||
| 					return ss, err |  | ||||||
| 				}, |  | ||||||
| 				func(d time.Duration) error { |  | ||||||
| 					mr.FastForward(d) |  | ||||||
| 					return nil |  | ||||||
| 				}, |  | ||||||
| 			) |  | ||||||
| 		}) |  | ||||||
| 	}) |  | ||||||
| 
 |  | ||||||
| 	Context("with custom CA path", func() { |  | ||||||
| 		BeforeEach(func() { |  | ||||||
| 			mr.Close() |  | ||||||
| 
 |  | ||||||
| 			var err error |  | ||||||
| 			mr, err = miniredis.RunTLS(&tls.Config{Certificates: []tls.Certificate{cert}}) |  | ||||||
| 			Expect(err).ToNot(HaveOccurred()) |  | ||||||
| 		}) |  | ||||||
| 
 |  | ||||||
| 		AfterEach(func() { |  | ||||||
| 			mr.Close() |  | ||||||
| 
 |  | ||||||
| 			var err error |  | ||||||
| 			mr, err = miniredis.Run() |  | ||||||
| 			Expect(err).ToNot(HaveOccurred()) |  | ||||||
| 		}) |  | ||||||
| 
 |  | ||||||
| 		tests.RunSessionStoreTests( |  | ||||||
| 			func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { |  | ||||||
| 				// Set the connection URL
 |  | ||||||
| 				opts.Type = options.RedisSessionStoreType |  | ||||||
| 				opts.Redis.ConnectionURL = "redis://" + mr.Addr() |  | ||||||
| 				opts.Redis.CAPath = caPath |  | ||||||
| 
 |  | ||||||
| 				// Capture the session store so that we can close the client
 |  | ||||||
| 				var err error |  | ||||||
| 				ss, err = NewRedisSessionStore(opts, cookieOpts) |  | ||||||
| 				return ss, err |  | ||||||
| 			}, |  | ||||||
| 			func(d time.Duration) error { |  | ||||||
| 				mr.FastForward(d) |  | ||||||
| 				return nil |  | ||||||
| 			}, |  | ||||||
| 		) |  | ||||||
| 	}) |  | ||||||
| 
 |  | ||||||
| 	Context("with insecure TLS connection", func() { |  | ||||||
| 		BeforeEach(func() { |  | ||||||
| 			mr.Close() |  | ||||||
| 
 |  | ||||||
| 			var err error |  | ||||||
| 			mr, err = miniredis.RunTLS(&tls.Config{Certificates: []tls.Certificate{cert}}) |  | ||||||
| 			Expect(err).ToNot(HaveOccurred()) |  | ||||||
| 		}) |  | ||||||
| 
 |  | ||||||
| 		AfterEach(func() { |  | ||||||
| 			mr.Close() |  | ||||||
| 
 |  | ||||||
| 			var err error |  | ||||||
| 			mr, err = miniredis.Run() |  | ||||||
| 			Expect(err).ToNot(HaveOccurred()) |  | ||||||
| 		}) |  | ||||||
| 
 |  | ||||||
| 		tests.RunSessionStoreTests( |  | ||||||
| 			func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { |  | ||||||
| 				// Set the connection URL
 |  | ||||||
| 				opts.Type = options.RedisSessionStoreType |  | ||||||
| 				opts.Redis.ConnectionURL = "redis://127.0.0.1:" + mr.Port() // func (*Miniredis) StartTLS listens on 127.0.0.1
 |  | ||||||
| 				opts.Redis.InsecureSkipTLSVerify = true |  | ||||||
| 
 |  | ||||||
| 				// Capture the session store so that we can close the client
 |  | ||||||
| 				var err error |  | ||||||
| 				ss, err = NewRedisSessionStore(opts, cookieOpts) |  | ||||||
| 				return ss, err |  | ||||||
| 			}, |  | ||||||
| 			func(d time.Duration) error { |  | ||||||
| 				mr.FastForward(d) |  | ||||||
| 				return nil |  | ||||||
| 			}, |  | ||||||
| 		) |  | ||||||
| 	}) |  | ||||||
| }) | }) | ||||||
|  |  | ||||||
|  | @ -0,0 +1,169 @@ | ||||||
|  | package redis | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"crypto/tls" | ||||||
|  | 	"time" | ||||||
|  | 
 | ||||||
|  | 	"github.com/alicebob/miniredis/v2" | ||||||
|  | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
|  | 	sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | ||||||
|  | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/persistence" | ||||||
|  | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/tests" | ||||||
|  | 	. "github.com/onsi/ginkgo/v2" | ||||||
|  | 	. "github.com/onsi/gomega" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | var _ = Describe("Redis SessionStore Tests", func() { | ||||||
|  | 	// helper interface to allow us to close client connections
 | ||||||
|  | 	// All non-nil redis clients should implement this
 | ||||||
|  | 	type closer interface { | ||||||
|  | 		Close() error | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	var mr *miniredis.Miniredis | ||||||
|  | 	var ss sessionsapi.SessionStore | ||||||
|  | 
 | ||||||
|  | 	BeforeEach(func() { | ||||||
|  | 		var err error | ||||||
|  | 		mr, err = miniredis.RunTLS(&tls.Config{Certificates: []tls.Certificate{cert}}) | ||||||
|  | 		Expect(err).ToNot(HaveOccurred()) | ||||||
|  | 	}) | ||||||
|  | 
 | ||||||
|  | 	AfterEach(func() { | ||||||
|  | 		mr.Close() | ||||||
|  | 	}) | ||||||
|  | 
 | ||||||
|  | 	JustAfterEach(func() { | ||||||
|  | 		// Release any connections immediately after the test ends
 | ||||||
|  | 		if redisManager, ok := ss.(*persistence.Manager); ok { | ||||||
|  | 			if redisManager.Store.(*SessionStore).Client != nil { | ||||||
|  | 				Expect(redisManager.Store.(*SessionStore).Client.(closer).Close()).To(Succeed()) | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | 
 | ||||||
|  | 	const redissProtocol = "rediss://" | ||||||
|  | 	Context("with TLS connection", func() { | ||||||
|  | 		Context("with standalone", func() { | ||||||
|  | 			tests.RunSessionStoreTests( | ||||||
|  | 				func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { | ||||||
|  | 					// Set the connection URL
 | ||||||
|  | 					opts.Type = options.RedisSessionStoreType | ||||||
|  | 					opts.Redis.ConnectionURL = redissProtocol + mr.Addr() | ||||||
|  | 					opts.Redis.CAPath = caPath | ||||||
|  | 
 | ||||||
|  | 					// Capture the session store so that we can close the client
 | ||||||
|  | 					ss, err := NewRedisSessionStore(opts, cookieOpts) | ||||||
|  | 					return ss, err | ||||||
|  | 				}, | ||||||
|  | 				func(d time.Duration) error { | ||||||
|  | 					mr.FastForward(d) | ||||||
|  | 					return nil | ||||||
|  | 				}, | ||||||
|  | 			) | ||||||
|  | 		}) | ||||||
|  | 
 | ||||||
|  | 		Context("with cluster", func() { | ||||||
|  | 			tests.RunSessionStoreTests( | ||||||
|  | 				func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { | ||||||
|  | 					clusterAddr := redissProtocol + mr.Addr() | ||||||
|  | 					opts.Type = options.RedisSessionStoreType | ||||||
|  | 					opts.Redis.ClusterConnectionURLs = []string{clusterAddr} | ||||||
|  | 					opts.Redis.UseCluster = true | ||||||
|  | 					opts.Redis.CAPath = caPath | ||||||
|  | 
 | ||||||
|  | 					// Capture the session store so that we can close the client
 | ||||||
|  | 					var err error | ||||||
|  | 					ss, err = NewRedisSessionStore(opts, cookieOpts) | ||||||
|  | 					return ss, err | ||||||
|  | 				}, | ||||||
|  | 				func(d time.Duration) error { | ||||||
|  | 					mr.FastForward(d) | ||||||
|  | 					return nil | ||||||
|  | 				}, | ||||||
|  | 			) | ||||||
|  | 		}) | ||||||
|  | 	}) | ||||||
|  | 
 | ||||||
|  | 	Context("with insecure TLS connection", func() { | ||||||
|  | 		Context("with standalone", func() { | ||||||
|  | 			tests.RunSessionStoreTests( | ||||||
|  | 				func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { | ||||||
|  | 					// Set the connection URL
 | ||||||
|  | 					opts.Type = options.RedisSessionStoreType | ||||||
|  | 					opts.Redis.ConnectionURL = redissProtocol + mr.Addr() | ||||||
|  | 					opts.Redis.InsecureSkipTLSVerify = true | ||||||
|  | 
 | ||||||
|  | 					// Capture the session store so that we can close the client
 | ||||||
|  | 					ss, err := NewRedisSessionStore(opts, cookieOpts) | ||||||
|  | 					return ss, err | ||||||
|  | 				}, | ||||||
|  | 				func(d time.Duration) error { | ||||||
|  | 					mr.FastForward(d) | ||||||
|  | 					return nil | ||||||
|  | 				}, | ||||||
|  | 			) | ||||||
|  | 		}) | ||||||
|  | 
 | ||||||
|  | 		Context("with cluster", func() { | ||||||
|  | 			tests.RunSessionStoreTests( | ||||||
|  | 				func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { | ||||||
|  | 					clusterAddr := redissProtocol + mr.Addr() | ||||||
|  | 					opts.Type = options.RedisSessionStoreType | ||||||
|  | 					opts.Redis.ClusterConnectionURLs = []string{clusterAddr} | ||||||
|  | 					opts.Redis.UseCluster = true | ||||||
|  | 					opts.Redis.InsecureSkipTLSVerify = true | ||||||
|  | 
 | ||||||
|  | 					// Capture the session store so that we can close the client
 | ||||||
|  | 					var err error | ||||||
|  | 					ss, err = NewRedisSessionStore(opts, cookieOpts) | ||||||
|  | 					return ss, err | ||||||
|  | 				}, | ||||||
|  | 				func(d time.Duration) error { | ||||||
|  | 					mr.FastForward(d) | ||||||
|  | 					return nil | ||||||
|  | 				}, | ||||||
|  | 			) | ||||||
|  | 		}) | ||||||
|  | 	}) | ||||||
|  | 
 | ||||||
|  | 	Context("with custom CA path", func() { | ||||||
|  | 		tests.RunSessionStoreTests( | ||||||
|  | 			func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { | ||||||
|  | 				// Set the connection URL
 | ||||||
|  | 				opts.Type = options.RedisSessionStoreType | ||||||
|  | 				opts.Redis.ConnectionURL = redissProtocol + mr.Addr() | ||||||
|  | 				opts.Redis.CAPath = caPath | ||||||
|  | 
 | ||||||
|  | 				// Capture the session store so that we can close the client
 | ||||||
|  | 				var err error | ||||||
|  | 				ss, err = NewRedisSessionStore(opts, cookieOpts) | ||||||
|  | 				return ss, err | ||||||
|  | 			}, | ||||||
|  | 			func(d time.Duration) error { | ||||||
|  | 				mr.FastForward(d) | ||||||
|  | 				return nil | ||||||
|  | 			}, | ||||||
|  | 		) | ||||||
|  | 	}) | ||||||
|  | 
 | ||||||
|  | 	Context("with insecure TLS connection", func() { | ||||||
|  | 		tests.RunSessionStoreTests( | ||||||
|  | 			func(opts *options.SessionOptions, cookieOpts *options.Cookie) (sessionsapi.SessionStore, error) { | ||||||
|  | 				// Set the connection URL
 | ||||||
|  | 				opts.Type = options.RedisSessionStoreType | ||||||
|  | 				opts.Redis.ConnectionURL = "redis://127.0.0.1:" + mr.Port() // func (*Miniredis) StartTLS listens on 127.0.0.1
 | ||||||
|  | 				opts.Redis.InsecureSkipTLSVerify = true | ||||||
|  | 
 | ||||||
|  | 				// Capture the session store so that we can close the client
 | ||||||
|  | 				var err error | ||||||
|  | 				ss, err = NewRedisSessionStore(opts, cookieOpts) | ||||||
|  | 				return ss, err | ||||||
|  | 			}, | ||||||
|  | 			func(d time.Duration) error { | ||||||
|  | 				mr.FastForward(d) | ||||||
|  | 				return nil | ||||||
|  | 			}, | ||||||
|  | 		) | ||||||
|  | 	}) | ||||||
|  | }) | ||||||
|  | @ -1,13 +1,17 @@ | ||||||
| package redis_test | package redis | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
|  | 	"bytes" | ||||||
| 	"context" | 	"context" | ||||||
|  | 	"crypto/tls" | ||||||
|  | 	"encoding/pem" | ||||||
| 	"log" | 	"log" | ||||||
| 	"os" | 	"os" | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	. "github.com/onsi/ginkgo" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/util" | ||||||
|  | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| 	"github.com/redis/go-redis/v9" | 	"github.com/redis/go-redis/v9" | ||||||
| ) | ) | ||||||
|  | @ -22,6 +26,11 @@ func (l *wrappedRedisLogger) Printf(_ context.Context, format string, v ...inter | ||||||
| 	l.Logger.Printf(format, v...) | 	l.Logger.Printf(format, v...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | var ( | ||||||
|  | 	cert   tls.Certificate | ||||||
|  | 	caPath string | ||||||
|  | ) | ||||||
|  | 
 | ||||||
| func TestRedis(t *testing.T) { | func TestRedis(t *testing.T) { | ||||||
| 	logger.SetOutput(GinkgoWriter) | 	logger.SetOutput(GinkgoWriter) | ||||||
| 	logger.SetErrOutput(GinkgoWriter) | 	logger.SetErrOutput(GinkgoWriter) | ||||||
|  | @ -33,3 +42,27 @@ func TestRedis(t *testing.T) { | ||||||
| 	RegisterFailHandler(Fail) | 	RegisterFailHandler(Fail) | ||||||
| 	RunSpecs(t, "Redis") | 	RunSpecs(t, "Redis") | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | var _ = BeforeSuite(func() { | ||||||
|  | 	var err error | ||||||
|  | 	certBytes, keyBytes, err := util.GenerateCert("127.0.0.1") | ||||||
|  | 	Expect(err).ToNot(HaveOccurred()) | ||||||
|  | 	certOut := new(bytes.Buffer) | ||||||
|  | 	Expect(pem.Encode(certOut, &pem.Block{Type: "CERTIFICATE", Bytes: certBytes})).To(Succeed()) | ||||||
|  | 	certData := certOut.Bytes() | ||||||
|  | 	keyOut := new(bytes.Buffer) | ||||||
|  | 	Expect(pem.Encode(keyOut, &pem.Block{Type: "PRIVATE KEY", Bytes: keyBytes})).To(Succeed()) | ||||||
|  | 	cert, err = tls.X509KeyPair(certData, keyOut.Bytes()) | ||||||
|  | 	Expect(err).ToNot(HaveOccurred()) | ||||||
|  | 
 | ||||||
|  | 	certFile, err := os.CreateTemp("", "cert.*.pem") | ||||||
|  | 	Expect(err).ToNot(HaveOccurred()) | ||||||
|  | 	caPath = certFile.Name() | ||||||
|  | 	_, err = certFile.Write(certData) | ||||||
|  | 	defer certFile.Close() | ||||||
|  | 	Expect(err).ToNot(HaveOccurred()) | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | var _ = AfterSuite(func() { | ||||||
|  | 	Expect(os.Remove(caPath)).ToNot(HaveOccurred()) | ||||||
|  | }) | ||||||
|  |  | ||||||
|  | @ -12,7 +12,7 @@ import ( | ||||||
| 	sessionscookie "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/cookie" | 	sessionscookie "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/cookie" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/persistence" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/persistence" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/redis" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/sessions/redis" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -12,7 +12,7 @@ import ( | ||||||
| 	sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | 	sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | ||||||
| 	cookiesapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/cookies" | 	cookiesapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/cookies" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/encryption" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/encryption" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -8,8 +8,7 @@ import ( | ||||||
| 	"os" | 	"os" | ||||||
| 
 | 
 | ||||||
| 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -15,8 +15,7 @@ import ( | ||||||
| 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/middleware" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/middleware" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| 	"golang.org/x/net/websocket" | 	"golang.org/x/net/websocket" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | @ -10,8 +10,7 @@ import ( | ||||||
| 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/app/pagewriter" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/app/pagewriter" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,8 +6,7 @@ import ( | ||||||
| 	"regexp" | 	"regexp" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/app/pagewriter" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/app/pagewriter" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -7,8 +7,7 @@ import ( | ||||||
| 	"net/http/httptest" | 	"net/http/httptest" | ||||||
| 
 | 
 | ||||||
| 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | 	middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -13,7 +13,7 @@ import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| 	"golang.org/x/net/websocket" | 	"golang.org/x/net/websocket" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | @ -1,8 +1,7 @@ | ||||||
| package validation | package validation | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
|  |  | ||||||
|  | @ -4,8 +4,7 @@ import ( | ||||||
| 	"os" | 	"os" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,8 +4,7 @@ import ( | ||||||
| 	"encoding/base64" | 	"encoding/base64" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,8 +2,7 @@ package validation | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,8 +6,7 @@ import ( | ||||||
| 	"github.com/Bose/minisentinel" | 	"github.com/Bose/minisentinel" | ||||||
| 	"github.com/alicebob/miniredis/v2" | 	"github.com/alicebob/miniredis/v2" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,8 +4,7 @@ import ( | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -16,8 +16,7 @@ import ( | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | ||||||
| 	internaloidc "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/providers/oidc" | 	internaloidc "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/providers/oidc" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -9,8 +9,7 @@ import ( | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -11,7 +11,7 @@ import ( | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| 
 | 
 | ||||||
| 	internaloidc "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/providers/oidc" | 	internaloidc "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/providers/oidc" | ||||||
|  |  | ||||||
|  | @ -10,8 +10,7 @@ import ( | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/options" | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" |  | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import ( | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo/v2" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue