git.iko.soy/typeable/oauth2-proxy
on master help sign in
refactor: ptr.Ptr to ptr.To

Signed-off-by: Jan Larwig <jan@larwig.com>

commit0eec65e230219c389e837bfd97b21e00410b1e95 authorJan Larwig <jan@larwig.com> dateSun 16 Nov 2025, 22:04 (1 year ago) parent137decb
18 files changed+149−152
main_test.go+18−18 oauthproxy_test.go+2−2 pkg/apis/options/header.go+1−1 pkg/apis/options/legacy_options.go+17−17 pkg/apis/options/legacy_options_test.go+48−48 pkg/apis/options/providers.go+11−11 pkg/apis/options/upstreams.go+8−8 pkg/apis/sessions/session_state_test.go+4−7 pkg/middleware/headers_test.go+4−4 pkg/upstream/http_test.go+8−8 pkg/upstream/proxy_test.go+5−5 pkg/util/ptr/ptr.go+2−2 pkg/util/ptr/ptr_test.go+6−6 pkg/validation/options_test.go+2−2 pkg/validation/upstreams_test.go+5−5 providers/adfs_test.go+1−1 providers/ms_entra_id_test.go+3−3 providers/providers_test.go+4−4
main_test.go+18−18
@@ -123,26 +123,26 @@ redirect_url="http://localhost:4180/oauth2/callback"
123123 opts.RawRedirectURL = "http://localhost:4180/oauth2/callback"
124124
125125 opts.UpstreamServers = options.UpstreamConfig{
126− ProxyRawPath: ptr.Ptr(false),
126+ ProxyRawPath: ptr.To(false),
127127 Upstreams: []options.Upstream{
128128 {
129129 ID: "/",
130130 Path: "/",
131131 URI: "http://httpbin",
132− FlushInterval: ptr.Ptr(options.DefaultUpstreamFlushInterval),
133− PassHostHeader: ptr.Ptr(true),
134− ProxyWebSockets: ptr.Ptr(true),
135− Timeout: ptr.Ptr(options.DefaultUpstreamTimeout),
136− Static: ptr.Ptr(false),
137− InsecureSkipTLSVerify: ptr.Ptr(false),
138− DisableKeepAlives: ptr.Ptr(false),
132+ FlushInterval: ptr.To(options.DefaultUpstreamFlushInterval),
133+ PassHostHeader: ptr.To(true),
134+ ProxyWebSockets: ptr.To(true),
135+ Timeout: ptr.To(options.DefaultUpstreamTimeout),
136+ Static: ptr.To(false),
137+ InsecureSkipTLSVerify: ptr.To(false),
138+ DisableKeepAlives: ptr.To(false),
139139 },
140140 },
141141 }
142142
143143 authHeader := options.Header{
144144 Name: "Authorization",
145− PreserveRequestValue: ptr.Ptr(false),
145+ PreserveRequestValue: ptr.To(false),
146146 Values: []options.HeaderValue{
147147 {
148148 ClaimSource: &options.ClaimSource{
@@ -165,11 +165,11 @@ redirect_url="http://localhost:4180/oauth2/callback"
165165 Type: "google",
166166 ClientSecret: "b2F1dGgyLXByb3h5LWNsaWVudC1zZWNyZXQK",
167167 ClientID: "oauth2-proxy",
168− UseSystemTrustStore: ptr.Ptr(false),
169− SkipClaimsFromProfileURL: ptr.Ptr(false),
168+ UseSystemTrustStore: ptr.To(false),
169+ SkipClaimsFromProfileURL: ptr.To(false),
170170 GoogleConfig: options.GoogleOptions{
171171 AdminEmail: "admin@example.com",
172− UseApplicationDefaultCredentials: ptr.Ptr(false),
172+ UseApplicationDefaultCredentials: ptr.To(false),
173173 TargetPrincipal: "principal",
174174 },
175175 AzureConfig: options.AzureOptions{
@@ -181,16 +181,16 @@ redirect_url="http://localhost:4180/oauth2/callback"
181181 UserIDClaim: "email",
182182 AudienceClaims: []string{"aud"},
183183 ExtraAudiences: []string{},
184− InsecureSkipNonce: ptr.Ptr(true),
185− InsecureAllowUnverifiedEmail: ptr.Ptr(false),
186− InsecureSkipIssuerVerification: ptr.Ptr(false),
187− SkipDiscovery: ptr.Ptr(false),
184+ InsecureSkipNonce: ptr.To(true),
185+ InsecureAllowUnverifiedEmail: ptr.To(false),
186+ InsecureSkipIssuerVerification: ptr.To(false),
187+ SkipDiscovery: ptr.To(false),
188188 },
189189 MicrosoftEntraIDConfig: options.MicrosoftEntraIDOptions{
190− FederatedTokenAuth: ptr.Ptr(false),
190+ FederatedTokenAuth: ptr.To(false),
191191 },
192192 ADFSConfig: options.ADFSOptions{
193− SkipScope: ptr.Ptr(false),
193+ SkipScope: ptr.To(false),
194194 },
195195 LoginURLParameters: []options.LoginURLParameter{
196196 {Name: "approval_prompt", Default: []string{"force"}},
oauthproxy_test.go+2−2
@@ -507,7 +507,7 @@ func TestStaticProxyUpstream(t *testing.T) {
507507 ProxyUpstream: options.Upstream{
508508 ID: "static-proxy",
509509 Path: "/static-proxy",
510− Static: ptr.Ptr(true),
510+ Static: ptr.To(true),
511511 },
512512 })
513513 if err != nil {
@@ -2224,7 +2224,7 @@ func TestTrustedIPs(t *testing.T) {
22242224 {
22252225 ID: "static",
22262226 Path: "/",
2227− Static: ptr.Ptr(true),
2227+ Static: ptr.To(true),
22282228 },
22292229 },
22302230 }
pkg/apis/options/header.go+1−1
@@ -64,7 +64,7 @@ type ClaimSource struct {
6464// EnsureDefaults sets any default values for Header fields.
6565func (h *Header) EnsureDefaults() {
6666 if h.PreserveRequestValue == nil {
67− h.PreserveRequestValue = ptr.Ptr(DefaultHeaderPreserveRequestValue)
67+ h.PreserveRequestValue = ptr.To(DefaultHeaderPreserveRequestValue)
6868 }
6969 for i := range h.Values {
7070 h.Values[i].EnsureDefaults()
pkg/apis/options/legacy_options.go+17−17
@@ -166,7 +166,7 @@ func (l *LegacyUpstreams) convert() (UpstreamConfig, error) {
166166 logger.Errorf("unable to convert %q to int, use default \"200\"", u.Host)
167167 responseCode = 200
168168 }
169− upstream.Static = ptr.Ptr(true)
169+ upstream.Static = ptr.To(true)
170170 upstream.StaticCode = &responseCode
171171
172172 // This is not allowed to be empty and must be unique
@@ -177,8 +177,8 @@ func (l *LegacyUpstreams) convert() (UpstreamConfig, error) {
177177
178178 // Force defaults compatible with static responses
179179 upstream.URI = ""
180− upstream.InsecureSkipTLSVerify = ptr.Ptr(false)
181− upstream.DisableKeepAlives = ptr.Ptr(false)
180+ upstream.InsecureSkipTLSVerify = ptr.To(false)
181+ upstream.DisableKeepAlives = ptr.To(false)
182182 upstream.PassHostHeader = nil
183183 upstream.ProxyWebSockets = nil
184184 upstream.FlushInterval = nil
@@ -255,7 +255,7 @@ func (l *LegacyHeaders) getRequestHeaders() []Header {
255255 }
256256
257257 for i := range requestHeaders {
258− requestHeaders[i].PreserveRequestValue = ptr.Ptr(!l.SkipAuthStripHeaders)
258+ requestHeaders[i].PreserveRequestValue = ptr.To(!l.SkipAuthStripHeaders)
259259 }
260260
261261 return requestHeaders
@@ -290,7 +290,7 @@ func getBasicAuthHeader(preferEmailToUser bool, basicAuthPassword string) Header
290290
291291 return Header{
292292 Name: "Authorization",
293− PreserveRequestValue: ptr.Ptr(false),
293+ PreserveRequestValue: ptr.To(false),
294294 Values: []HeaderValue{
295295 {
296296 ClaimSource: &ClaimSource{
@@ -309,7 +309,7 @@ func getPassUserHeaders(preferEmailToUser bool) []Header {
309309 headers := []Header{
310310 {
311311 Name: "X-Forwarded-Groups",
312− PreserveRequestValue: ptr.Ptr(false),
312+ PreserveRequestValue: ptr.To(false),
313313 Values: []HeaderValue{
314314 {
315315 ClaimSource: &ClaimSource{
@@ -324,7 +324,7 @@ func getPassUserHeaders(preferEmailToUser bool) []Header {
324324 return append(headers,
325325 Header{
326326 Name: "X-Forwarded-User",
327− PreserveRequestValue: ptr.Ptr(false),
327+ PreserveRequestValue: ptr.To(false),
328328 Values: []HeaderValue{
329329 {
330330 ClaimSource: &ClaimSource{
@@ -339,7 +339,7 @@ func getPassUserHeaders(preferEmailToUser bool) []Header {
339339 return append(headers,
340340 Header{
341341 Name: "X-Forwarded-User",
342− PreserveRequestValue: ptr.Ptr(false),
342+ PreserveRequestValue: ptr.To(false),
343343 Values: []HeaderValue{
344344 {
345345 ClaimSource: &ClaimSource{
@@ -350,7 +350,7 @@ func getPassUserHeaders(preferEmailToUser bool) []Header {
350350 },
351351 Header{
352352 Name: "X-Forwarded-Email",
353− PreserveRequestValue: ptr.Ptr(false),
353+ PreserveRequestValue: ptr.To(false),
354354 Values: []HeaderValue{
355355 {
356356 ClaimSource: &ClaimSource{
@@ -365,7 +365,7 @@ func getPassUserHeaders(preferEmailToUser bool) []Header {
365365func getPassAccessTokenHeader() Header {
366366 return Header{
367367 Name: "X-Forwarded-Access-Token",
368− PreserveRequestValue: ptr.Ptr(false),
368+ PreserveRequestValue: ptr.To(false),
369369 Values: []HeaderValue{
370370 {
371371 ClaimSource: &ClaimSource{
@@ -379,7 +379,7 @@ func getPassAccessTokenHeader() Header {
379379func getAuthorizationHeader() Header {
380380 return Header{
381381 Name: "Authorization",
382− PreserveRequestValue: ptr.Ptr(false),
382+ PreserveRequestValue: ptr.To(false),
383383 Values: []HeaderValue{
384384 {
385385 ClaimSource: &ClaimSource{
@@ -394,7 +394,7 @@ func getAuthorizationHeader() Header {
394394func getPreferredUsernameHeader() Header {
395395 return Header{
396396 Name: "X-Forwarded-Preferred-Username",
397− PreserveRequestValue: ptr.Ptr(false),
397+ PreserveRequestValue: ptr.To(false),
398398 Values: []HeaderValue{
399399 {
400400 ClaimSource: &ClaimSource{
@@ -409,7 +409,7 @@ func getXAuthRequestHeaders() []Header {
409409 headers := []Header{
410410 {
411411 Name: "X-Auth-Request-User",
412− PreserveRequestValue: ptr.Ptr(false),
412+ PreserveRequestValue: ptr.To(false),
413413 Values: []HeaderValue{
414414 {
415415 ClaimSource: &ClaimSource{
@@ -420,7 +420,7 @@ func getXAuthRequestHeaders() []Header {
420420 },
421421 {
422422 Name: "X-Auth-Request-Email",
423− PreserveRequestValue: ptr.Ptr(false),
423+ PreserveRequestValue: ptr.To(false),
424424 Values: []HeaderValue{
425425 {
426426 ClaimSource: &ClaimSource{
@@ -431,7 +431,7 @@ func getXAuthRequestHeaders() []Header {
431431 },
432432 {
433433 Name: "X-Auth-Request-Preferred-Username",
434− PreserveRequestValue: ptr.Ptr(false),
434+ PreserveRequestValue: ptr.To(false),
435435 Values: []HeaderValue{
436436 {
437437 ClaimSource: &ClaimSource{
@@ -442,7 +442,7 @@ func getXAuthRequestHeaders() []Header {
442442 },
443443 {
444444 Name: "X-Auth-Request-Groups",
445− PreserveRequestValue: ptr.Ptr(false),
445+ PreserveRequestValue: ptr.To(false),
446446 Values: []HeaderValue{
447447 {
448448 ClaimSource: &ClaimSource{
@@ -459,7 +459,7 @@ func getXAuthRequestHeaders() []Header {
459459func getXAuthRequestAccessTokenHeader() Header {
460460 return Header{
461461 Name: "X-Auth-Request-Access-Token",
462− PreserveRequestValue: ptr.Ptr(false),
462+ PreserveRequestValue: ptr.To(false),
463463 Values: []HeaderValue{
464464 {
465465 ClaimSource: &ClaimSource{
pkg/apis/options/legacy_options_test.go+48−48
@@ -36,9 +36,9 @@ var _ = Describe("Legacy Options", func() {
3636 Path: "/baz",
3737 URI: "http://foo.bar/baz",
3838 FlushInterval: &flushInterval,
39− InsecureSkipTLSVerify: ptr.Ptr(true),
40− PassHostHeader: ptr.Ptr(true),
41− ProxyWebSockets: ptr.Ptr(true),
39+ InsecureSkipTLSVerify: ptr.To(true),
40+ PassHostHeader: ptr.To(true),
41+ ProxyWebSockets: ptr.To(true),
4242 Timeout: &timeout,
4343 DisableKeepAlives: &legacyOpts.LegacyUpstreams.DisableKeepAlives,
4444 },
@@ -47,9 +47,9 @@ var _ = Describe("Legacy Options", func() {
4747 Path: "/bar",
4848 URI: "file:///var/lib/website",
4949 FlushInterval: &flushInterval,
50− InsecureSkipTLSVerify: ptr.Ptr(true),
51− PassHostHeader: ptr.Ptr(true),
52− ProxyWebSockets: ptr.Ptr(true),
50+ InsecureSkipTLSVerify: ptr.To(true),
51+ PassHostHeader: ptr.To(true),
52+ ProxyWebSockets: ptr.To(true),
5353 Timeout: &timeout,
5454 DisableKeepAlives: &legacyOpts.LegacyUpstreams.DisableKeepAlives,
5555 },
@@ -57,10 +57,10 @@ var _ = Describe("Legacy Options", func() {
5757 ID: "static://204",
5858 Path: "/",
5959 URI: "",
60− Static: ptr.Ptr(true),
60+ Static: ptr.To(true),
6161 StaticCode: &staticCode,
6262 FlushInterval: nil,
63− InsecureSkipTLSVerify: ptr.Ptr(false),
63+ InsecureSkipTLSVerify: ptr.To(false),
6464 PassHostHeader: nil,
6565 ProxyWebSockets: nil,
6666 Timeout: nil,
@@ -72,7 +72,7 @@ var _ = Describe("Legacy Options", func() {
7272 opts.InjectRequestHeaders = []Header{
7373 {
7474 Name: "X-Forwarded-Groups",
75− PreserveRequestValue: ptr.Ptr(false),
75+ PreserveRequestValue: ptr.To(false),
7676 Values: []HeaderValue{
7777 {
7878 ClaimSource: &ClaimSource{
@@ -83,7 +83,7 @@ var _ = Describe("Legacy Options", func() {
8383 },
8484 {
8585 Name: "X-Forwarded-User",
86− PreserveRequestValue: ptr.Ptr(false),
86+ PreserveRequestValue: ptr.To(false),
8787 Values: []HeaderValue{
8888 {
8989 ClaimSource: &ClaimSource{
@@ -94,7 +94,7 @@ var _ = Describe("Legacy Options", func() {
9494 },
9595 {
9696 Name: "X-Forwarded-Email",
97− PreserveRequestValue: ptr.Ptr(false),
97+ PreserveRequestValue: ptr.To(false),
9898 Values: []HeaderValue{
9999 {
100100 ClaimSource: &ClaimSource{
@@ -105,7 +105,7 @@ var _ = Describe("Legacy Options", func() {
105105 },
106106 {
107107 Name: "X-Forwarded-Preferred-Username",
108− PreserveRequestValue: ptr.Ptr(false),
108+ PreserveRequestValue: ptr.To(false),
109109 Values: []HeaderValue{
110110 {
111111 ClaimSource: &ClaimSource{
@@ -126,8 +126,8 @@ var _ = Describe("Legacy Options", func() {
126126 opts.Providers[0].ClientID = "oauth-proxy"
127127 opts.Providers[0].OIDCConfig.AudienceClaims = []string{"aud"}
128128 opts.Providers[0].OIDCConfig.ExtraAudiences = []string{}
129− opts.Providers[0].OIDCConfig.InsecureSkipNonce = ptr.Ptr(true)
130− opts.Providers[0].OIDCConfig.InsecureSkipIssuerVerification = ptr.Ptr(false)
129+ opts.Providers[0].OIDCConfig.InsecureSkipNonce = ptr.To(true)
130+ opts.Providers[0].OIDCConfig.InsecureSkipIssuerVerification = ptr.To(false)
131131 opts.Providers[0].LoginURLParameters = []LoginURLParameter{
132132 {Name: "approval_prompt", Default: []string{"force"}},
133133 }
@@ -202,14 +202,14 @@ var _ = Describe("Legacy Options", func() {
202202 ID: validStatic,
203203 Path: "/",
204204 URI: "",
205− Static: ptr.Ptr(true),
205+ Static: ptr.To(true),
206206 StaticCode: &validStaticCode,
207− InsecureSkipTLSVerify: ptr.Ptr(false),
207+ InsecureSkipTLSVerify: ptr.To(false),
208208 PassHostHeader: nil,
209209 ProxyWebSockets: nil,
210210 FlushInterval: nil,
211211 Timeout: nil,
212− DisableKeepAlives: ptr.Ptr(false),
212+ DisableKeepAlives: ptr.To(false),
213213 }
214214
215215 invalidStatic := "static://abc"
@@ -218,14 +218,14 @@ var _ = Describe("Legacy Options", func() {
218218 ID: invalidStatic,
219219 Path: "/",
220220 URI: "",
221− Static: ptr.Ptr(true),
221+ Static: ptr.To(true),
222222 StaticCode: &invalidStaticCode,
223− InsecureSkipTLSVerify: ptr.Ptr(false),
223+ InsecureSkipTLSVerify: ptr.To(false),
224224 PassHostHeader: nil,
225225 ProxyWebSockets: nil,
226226 FlushInterval: nil,
227227 Timeout: nil,
228− DisableKeepAlives: ptr.Ptr(false),
228+ DisableKeepAlives: ptr.To(false),
229229 }
230230
231231 invalidHTTP := ":foo"
@@ -318,7 +318,7 @@ var _ = Describe("Legacy Options", func() {
318318
319319 xForwardedUser := Header{
320320 Name: "X-Forwarded-User",
321− PreserveRequestValue: ptr.Ptr(false),
321+ PreserveRequestValue: ptr.To(false),
322322 Values: []HeaderValue{
323323 {
324324 ClaimSource: &ClaimSource{
@@ -330,7 +330,7 @@ var _ = Describe("Legacy Options", func() {
330330
331331 xForwardedEmail := Header{
332332 Name: "X-Forwarded-Email",
333− PreserveRequestValue: ptr.Ptr(false),
333+ PreserveRequestValue: ptr.To(false),
334334 Values: []HeaderValue{
335335 {
336336 ClaimSource: &ClaimSource{
@@ -342,7 +342,7 @@ var _ = Describe("Legacy Options", func() {
342342
343343 xForwardedGroups := Header{
344344 Name: "X-Forwarded-Groups",
345− PreserveRequestValue: ptr.Ptr(false),
345+ PreserveRequestValue: ptr.To(false),
346346 Values: []HeaderValue{
347347 {
348348 ClaimSource: &ClaimSource{
@@ -354,7 +354,7 @@ var _ = Describe("Legacy Options", func() {
354354
355355 xForwardedPreferredUsername := Header{
356356 Name: "X-Forwarded-Preferred-Username",
357− PreserveRequestValue: ptr.Ptr(false),
357+ PreserveRequestValue: ptr.To(false),
358358 Values: []HeaderValue{
359359 {
360360 ClaimSource: &ClaimSource{
@@ -366,7 +366,7 @@ var _ = Describe("Legacy Options", func() {
366366
367367 basicAuthHeader := Header{
368368 Name: "Authorization",
369− PreserveRequestValue: ptr.Ptr(false),
369+ PreserveRequestValue: ptr.To(false),
370370 Values: []HeaderValue{
371371 {
372372 ClaimSource: &ClaimSource{
@@ -382,7 +382,7 @@ var _ = Describe("Legacy Options", func() {
382382
383383 xForwardedUserWithEmail := Header{
384384 Name: "X-Forwarded-User",
385− PreserveRequestValue: ptr.Ptr(false),
385+ PreserveRequestValue: ptr.To(false),
386386 Values: []HeaderValue{
387387 {
388388 ClaimSource: &ClaimSource{
@@ -394,7 +394,7 @@ var _ = Describe("Legacy Options", func() {
394394
395395 xForwardedAccessToken := Header{
396396 Name: "X-Forwarded-Access-Token",
397− PreserveRequestValue: ptr.Ptr(false),
397+ PreserveRequestValue: ptr.To(false),
398398 Values: []HeaderValue{
399399 {
400400 ClaimSource: &ClaimSource{
@@ -406,7 +406,7 @@ var _ = Describe("Legacy Options", func() {
406406
407407 basicAuthHeaderWithEmail := Header{
408408 Name: "Authorization",
409− PreserveRequestValue: ptr.Ptr(false),
409+ PreserveRequestValue: ptr.To(false),
410410 Values: []HeaderValue{
411411 {
412412 ClaimSource: &ClaimSource{
@@ -422,7 +422,7 @@ var _ = Describe("Legacy Options", func() {
422422
423423 xAuthRequestUser := Header{
424424 Name: "X-Auth-Request-User",
425− PreserveRequestValue: ptr.Ptr(false),
425+ PreserveRequestValue: ptr.To(false),
426426 Values: []HeaderValue{
427427 {
428428 ClaimSource: &ClaimSource{
@@ -434,7 +434,7 @@ var _ = Describe("Legacy Options", func() {
434434
435435 xAuthRequestEmail := Header{
436436 Name: "X-Auth-Request-Email",
437− PreserveRequestValue: ptr.Ptr(false),
437+ PreserveRequestValue: ptr.To(false),
438438 Values: []HeaderValue{
439439 {
440440 ClaimSource: &ClaimSource{
@@ -446,7 +446,7 @@ var _ = Describe("Legacy Options", func() {
446446
447447 xAuthRequestGroups := Header{
448448 Name: "X-Auth-Request-Groups",
449− PreserveRequestValue: ptr.Ptr(false),
449+ PreserveRequestValue: ptr.To(false),
450450 Values: []HeaderValue{
451451 {
452452 ClaimSource: &ClaimSource{
@@ -458,7 +458,7 @@ var _ = Describe("Legacy Options", func() {
458458
459459 xAuthRequestPreferredUsername := Header{
460460 Name: "X-Auth-Request-Preferred-Username",
461− PreserveRequestValue: ptr.Ptr(false),
461+ PreserveRequestValue: ptr.To(false),
462462 Values: []HeaderValue{
463463 {
464464 ClaimSource: &ClaimSource{
@@ -470,7 +470,7 @@ var _ = Describe("Legacy Options", func() {
470470
471471 xAuthRequestAccessToken := Header{
472472 Name: "X-Auth-Request-Access-Token",
473− PreserveRequestValue: ptr.Ptr(false),
473+ PreserveRequestValue: ptr.To(false),
474474 Values: []HeaderValue{
475475 {
476476 ClaimSource: &ClaimSource{
@@ -482,7 +482,7 @@ var _ = Describe("Legacy Options", func() {
482482
483483 authorizationHeader := Header{
484484 Name: "Authorization",
485− PreserveRequestValue: ptr.Ptr(false),
485+ PreserveRequestValue: ptr.To(false),
486486 Values: []HeaderValue{
487487 {
488488 ClaimSource: &ClaimSource{
@@ -948,14 +948,14 @@ var _ = Describe("Legacy Options", func() {
948948 }
949949
950950 defaultOIDCOptions := OIDCOptions{
951− SkipDiscovery: ptr.Ptr(false),
952− InsecureSkipNonce: ptr.Ptr(false),
953− InsecureAllowUnverifiedEmail: ptr.Ptr(false),
954− InsecureSkipIssuerVerification: ptr.Ptr(false),
951+ SkipDiscovery: ptr.To(false),
952+ InsecureSkipNonce: ptr.To(false),
953+ InsecureAllowUnverifiedEmail: ptr.To(false),
954+ InsecureSkipIssuerVerification: ptr.To(false),
955955 }
956956
957957 defaultGoogleOptions := GoogleOptions{
958− UseApplicationDefaultCredentials: ptr.Ptr(false),
958+ UseApplicationDefaultCredentials: ptr.To(false),
959959 }
960960
961961 defaultLegacyProvider := LegacyProvider{
@@ -970,8 +970,8 @@ var _ = Describe("Legacy Options", func() {
970970 OIDCConfig: defaultOIDCOptions,
971971 GoogleConfig: defaultGoogleOptions,
972972 LoginURLParameters: defaultURLParams,
973− UseSystemTrustStore: ptr.Ptr(false),
974− SkipClaimsFromProfileURL: ptr.Ptr(false),
973+ UseSystemTrustStore: ptr.To(false),
974+ SkipClaimsFromProfileURL: ptr.To(false),
975975 }
976976
977977 defaultLegacyProviderWithPrompt := LegacyProvider{
@@ -989,8 +989,8 @@ var _ = Describe("Legacy Options", func() {
989989 LoginURLParameters: []LoginURLParameter{
990990 {Name: "prompt", Default: []string{"switch_user"}},
991991 },
992− UseSystemTrustStore: ptr.Ptr(false),
993− SkipClaimsFromProfileURL: ptr.Ptr(false),
992+ UseSystemTrustStore: ptr.To(false),
993+ SkipClaimsFromProfileURL: ptr.To(false),
994994 }
995995
996996 displayNameLegacyProvider := LegacyProvider{
@@ -1007,8 +1007,8 @@ var _ = Describe("Legacy Options", func() {
10071007 OIDCConfig: defaultOIDCOptions,
10081008 GoogleConfig: defaultGoogleOptions,
10091009 LoginURLParameters: defaultURLParams,
1010− UseSystemTrustStore: ptr.Ptr(false),
1011− SkipClaimsFromProfileURL: ptr.Ptr(false),
1010+ UseSystemTrustStore: ptr.To(false),
1011+ SkipClaimsFromProfileURL: ptr.To(false),
10121012 }
10131013
10141014 internalConfigProvider := Provider{
@@ -1020,11 +1020,11 @@ var _ = Describe("Legacy Options", func() {
10201020 AdminEmail: "email@email.com",
10211021 ServiceAccountJSON: "test.json",
10221022 Groups: []string{"1", "2"},
1023− UseApplicationDefaultCredentials: ptr.Ptr(false),
1023+ UseApplicationDefaultCredentials: ptr.To(false),
10241024 },
10251025 LoginURLParameters: defaultURLParams,
1026− UseSystemTrustStore: ptr.Ptr(false),
1027− SkipClaimsFromProfileURL: ptr.Ptr(false),
1026+ UseSystemTrustStore: ptr.To(false),
1027+ SkipClaimsFromProfileURL: ptr.To(false),
10281028 }
10291029
10301030 internalConfigLegacyProvider := LegacyProvider{
pkg/apis/options/providers.go+11−11
@@ -334,9 +334,9 @@ func providerDefaults() Providers {
334334 Tenant: "common",
335335 },
336336 OIDCConfig: OIDCOptions{
337− InsecureAllowUnverifiedEmail: ptr.Ptr(DefaultInsecureAllowUnverifiedEmail),
338− InsecureSkipNonce: ptr.Ptr(DefaultInsecureSkipNonce),
339− SkipDiscovery: ptr.Ptr(DefaultSkipDiscovery),
337+ InsecureAllowUnverifiedEmail: ptr.To(DefaultInsecureAllowUnverifiedEmail),
338+ InsecureSkipNonce: ptr.To(DefaultInsecureSkipNonce),
339+ SkipDiscovery: ptr.To(DefaultSkipDiscovery),
340340 UserIDClaim: OIDCEmailClaim, // Deprecated: Use OIDCEmailClaim
341341 EmailClaim: OIDCEmailClaim,
342342 GroupsClaim: OIDCGroupsClaim,
@@ -358,10 +358,10 @@ func (p Providers) EnsureDefaults() {
358358// EnsureDefaults sets any default values for Provider fields.
359359func (p *Provider) EnsureDefaults() {
360360 if p.SkipClaimsFromProfileURL == nil {
361− p.SkipClaimsFromProfileURL = ptr.Ptr(DefaultSkipClaimsFromProfileURL)
361+ p.SkipClaimsFromProfileURL = ptr.To(DefaultSkipClaimsFromProfileURL)
362362 }
363363 if p.UseSystemTrustStore == nil {
364− p.UseSystemTrustStore = ptr.Ptr(DefaultUseSystemTrustStore)
364+ p.UseSystemTrustStore = ptr.To(DefaultUseSystemTrustStore)
365365 }
366366
367367 p.OIDCConfig.EnsureDefaults()
@@ -374,13 +374,13 @@ func (p *Provider) EnsureDefaults() {
374374func (o *OIDCOptions) EnsureDefaults() {
375375 // Ensure OIDC defaults
376376 if o.InsecureAllowUnverifiedEmail == nil {
377− o.InsecureAllowUnverifiedEmail = ptr.Ptr(DefaultInsecureAllowUnverifiedEmail)
377+ o.InsecureAllowUnverifiedEmail = ptr.To(DefaultInsecureAllowUnverifiedEmail)
378378 }
379379 if o.InsecureSkipNonce == nil {
380− o.InsecureSkipNonce = ptr.Ptr(DefaultInsecureSkipNonce)
380+ o.InsecureSkipNonce = ptr.To(DefaultInsecureSkipNonce)
381381 }
382382 if o.SkipDiscovery == nil {
383− o.SkipDiscovery = ptr.Ptr(DefaultSkipDiscovery)
383+ o.SkipDiscovery = ptr.To(DefaultSkipDiscovery)
384384 }
385385 if o.UserIDClaim == "" {
386386 o.UserIDClaim = OIDCEmailClaim
@@ -399,20 +399,20 @@ func (o *OIDCOptions) EnsureDefaults() {
399399// EnsureDefaults sets any default values for MicrosoftEntraIDOptions fields.
400400func (me *MicrosoftEntraIDOptions) EnsureDefaults() {
401401 if me.FederatedTokenAuth == nil {
402− me.FederatedTokenAuth = ptr.Ptr(DefaultMicrosoftEntraIDUseFederatedToken)
402+ me.FederatedTokenAuth = ptr.To(DefaultMicrosoftEntraIDUseFederatedToken)
403403 }
404404}
405405
406406// EnsureDefaults sets any default values for ADFSOptions fields.
407407func (a *ADFSOptions) EnsureDefaults() {
408408 if a.SkipScope == nil {
409− a.SkipScope = ptr.Ptr(DefaultADFSSkipScope)
409+ a.SkipScope = ptr.To(DefaultADFSSkipScope)
410410 }
411411}
412412
413413// EnsureDefaults sets any default values for GoogleOptions fields.
414414func (g *GoogleOptions) EnsureDefaults() {
415415 if g.UseApplicationDefaultCredentials == nil {
416− g.UseApplicationDefaultCredentials = ptr.Ptr(DefaultUseApplicationDefaultCredentials)
416+ g.UseApplicationDefaultCredentials = ptr.To(DefaultUseApplicationDefaultCredentials)
417417 }
418418}
pkg/apis/options/upstreams.go+8−8
@@ -128,7 +128,7 @@ type Upstream struct {
128128// EnsureDefaults sets any default values for UpstreamConfig fields.
129129func (uc *UpstreamConfig) EnsureDefaults() {
130130 if uc.ProxyRawPath == nil {
131− uc.ProxyRawPath = ptr.Ptr(DefaultUpstreamProxyRawPath)
131+ uc.ProxyRawPath = ptr.To(DefaultUpstreamProxyRawPath)
132132 }
133133 for i := range uc.Upstreams {
134134 uc.Upstreams[i].EnsureDefaults()
@@ -138,24 +138,24 @@ func (uc *UpstreamConfig) EnsureDefaults() {
138138// EnsureDefaults sets any default values for Upstream fields.
139139func (u *Upstream) EnsureDefaults() {
140140 if u.InsecureSkipTLSVerify == nil {
141− u.InsecureSkipTLSVerify = ptr.Ptr(DefaultUpsteamInsecureSkipTLSVerify)
141+ u.InsecureSkipTLSVerify = ptr.To(DefaultUpsteamInsecureSkipTLSVerify)
142142 }
143143 if u.Static == nil {
144− u.Static = ptr.Ptr(DefaultUpstreamStatic)
144+ u.Static = ptr.To(DefaultUpstreamStatic)
145145 }
146146 if u.FlushInterval == nil {
147− u.FlushInterval = ptr.Ptr(DefaultUpstreamFlushInterval)
147+ u.FlushInterval = ptr.To(DefaultUpstreamFlushInterval)
148148 }
149149 if u.PassHostHeader == nil {
150− u.PassHostHeader = ptr.Ptr(DefaultUpstreamPassHostHeader)
150+ u.PassHostHeader = ptr.To(DefaultUpstreamPassHostHeader)
151151 }
152152 if u.ProxyWebSockets == nil {
153− u.ProxyWebSockets = ptr.Ptr(DefaultUpstreamProxyWebSockets)
153+ u.ProxyWebSockets = ptr.To(DefaultUpstreamProxyWebSockets)
154154 }
155155 if u.Timeout == nil {
156− u.Timeout = ptr.Ptr(DefaultUpstreamTimeout)
156+ u.Timeout = ptr.To(DefaultUpstreamTimeout)
157157 }
158158 if u.DisableKeepAlives == nil {
159− u.DisableKeepAlives = ptr.Ptr(DefaultUpstreamDisableKeepAlives)
159+ u.DisableKeepAlives = ptr.To(DefaultUpstreamDisableKeepAlives)
160160 }
161161}
pkg/apis/sessions/session_state_test.go+4−7
@@ -8,15 +8,12 @@ import (
88 "time"
99
1010 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/encryption"
11+ "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/util/ptr"
1112 . "github.com/onsi/gomega"
1213 "github.com/stretchr/testify/assert"
1314 "github.com/stretchr/testify/require"
1415)
1516
16−func timePtr(t time.Time) *time.Time {
17− return &t
18−}
19−
2017func TestCreatedAtNow(t *testing.T) {
2118 g := NewWithT(t)
2219 ss := &SessionState{}
@@ -137,10 +134,10 @@ func TestString(t *testing.T) {
137134}
138135
139136func TestIsExpired(t *testing.T) {
140− s := &SessionState{ExpiresOn: timePtr(time.Now().Add(time.Duration(-1) * time.Minute))}
137+ s := &SessionState{ExpiresOn: ptr.To(time.Now().Add(time.Duration(-1) * time.Minute))}
141138 assert.Equal(t, true, s.IsExpired())
142139
143− s = &SessionState{ExpiresOn: timePtr(time.Now().Add(time.Duration(1) * time.Minute))}
140+ s = &SessionState{ExpiresOn: ptr.To(time.Now().Add(time.Duration(1) * time.Minute))}
144141 assert.Equal(t, false, s.IsExpired())
145142
146143 s = &SessionState{}
@@ -154,7 +151,7 @@ func TestAge(t *testing.T) {
154151 assert.Equal(t, time.Duration(0), ss.Age())
155152
156153 // Set CreatedAt to 1 hour ago
157− ss.CreatedAt = timePtr(time.Now().Add(-1 * time.Hour))
154+ ss.CreatedAt = ptr.To(time.Now().Add(-1 * time.Hour))
158155 assert.Equal(t, time.Hour, ss.Age().Round(time.Minute))
159156}
160157
pkg/middleware/headers_test.go+4−4
@@ -116,7 +116,7 @@ var _ = Describe("Headers Suite", func() {
116116 headers: []options.Header{
117117 {
118118 Name: "Claim",
119− PreserveRequestValue: ptr.Ptr(true),
119+ PreserveRequestValue: ptr.To(true),
120120 Values: []options.HeaderValue{
121121 {
122122 ClaimSource: &options.ClaimSource{
@@ -161,7 +161,7 @@ var _ = Describe("Headers Suite", func() {
161161 headers: []options.Header{
162162 {
163163 Name: "Claim",
164− PreserveRequestValue: ptr.Ptr(true),
164+ PreserveRequestValue: ptr.To(true),
165165 Values: []options.HeaderValue{
166166 {
167167 ClaimSource: &options.ClaimSource{
@@ -386,7 +386,7 @@ var _ = Describe("Headers Suite", func() {
386386 headers: []options.Header{
387387 {
388388 Name: "Claim",
389− PreserveRequestValue: ptr.Ptr(true),
389+ PreserveRequestValue: ptr.To(true),
390390 Values: []options.HeaderValue{
391391 {
392392 ClaimSource: &options.ClaimSource{
@@ -433,7 +433,7 @@ var _ = Describe("Headers Suite", func() {
433433 headers: []options.Header{
434434 {
435435 Name: "Claim",
436− PreserveRequestValue: ptr.Ptr(true),
436+ PreserveRequestValue: ptr.To(true),
437437 Values: []options.HeaderValue{
438438 {
439439 ClaimSource: &options.ClaimSource{
pkg/upstream/http_test.go+8−8
@@ -63,8 +63,8 @@ var _ = Describe("HTTP Upstream Suite", func() {
6363 upstream := options.Upstream{
6464 ID: in.id,
6565 PassHostHeader: &in.passUpstreamHostHeader,
66− ProxyWebSockets: ptr.Ptr(false),
67− InsecureSkipTLSVerify: ptr.Ptr(false),
66+ ProxyWebSockets: ptr.To(false),
67+ InsecureSkipTLSVerify: ptr.To(false),
6868 FlushInterval: &flush,
6969 Timeout: &timeout,
7070 }
@@ -342,9 +342,9 @@ var _ = Describe("HTTP Upstream Suite", func() {
342342
343343 upstream := options.Upstream{
344344 ID: "noPassHost",
345− PassHostHeader: ptr.Ptr(false),
346− ProxyWebSockets: ptr.Ptr(false),
347− InsecureSkipTLSVerify: ptr.Ptr(false),
345+ PassHostHeader: ptr.To(false),
346+ ProxyWebSockets: ptr.To(false),
347+ InsecureSkipTLSVerify: ptr.To(false),
348348 FlushInterval: &defaultFlushInterval,
349349 Timeout: &defaultTimeout,
350350 }
@@ -486,9 +486,9 @@ var _ = Describe("HTTP Upstream Suite", func() {
486486 timeout := options.DefaultUpstreamTimeout
487487 upstream := options.Upstream{
488488 ID: "websocketProxy",
489− PassHostHeader: ptr.Ptr(true),
490− ProxyWebSockets: ptr.Ptr(true),
491− InsecureSkipTLSVerify: ptr.Ptr(false),
489+ PassHostHeader: ptr.To(true),
490+ ProxyWebSockets: ptr.To(true),
491+ InsecureSkipTLSVerify: ptr.To(false),
492492 FlushInterval: &flush,
493493 Timeout: &timeout,
494494 }
pkg/upstream/proxy_test.go+5−5
@@ -61,19 +61,19 @@ var _ = Describe("Proxy Suite", func() {
6161 {
6262 ID: "static-backend",
6363 Path: "/static/",
64− Static: ptr.Ptr(true),
64+ Static: ptr.To(true),
6565 StaticCode: &ok,
6666 },
6767 {
6868 ID: "static-backend-no-trailing-slash",
6969 Path: "/static",
70− Static: ptr.Ptr(true),
70+ Static: ptr.To(true),
7171 StaticCode: &accepted,
7272 },
7373 {
7474 ID: "static-backend-long",
7575 Path: "/static/long",
76− Static: ptr.Ptr(true),
76+ Static: ptr.To(true),
7777 StaticCode: &accepted,
7878 },
7979 {
@@ -84,7 +84,7 @@ var _ = Describe("Proxy Suite", func() {
8484 {
8585 ID: "single-path-backend",
8686 Path: "/single-path",
87− Static: ptr.Ptr(true),
87+ Static: ptr.To(true),
8888 StaticCode: &ok,
8989 },
9090 {
@@ -347,7 +347,7 @@ var _ = Describe("Proxy Suite", func() {
347347 upstream: "",
348348 }),
349349 Entry("containing an escaped '/' with ProxyRawPath", &proxyTableInput{
350− upstreams: options.UpstreamConfig{ProxyRawPath: ptr.Ptr(true)},
350+ upstreams: options.UpstreamConfig{ProxyRawPath: ptr.To(true)},
351351 target: "http://example.localhost/%2F/test1/%2F/test2",
352352 response: testHTTPResponse{
353353 code: 404,
pkg/util/ptr/ptr.go+2−2
@@ -1,7 +1,7 @@
11package ptr
22
3−// Ptr generically returns a pointer to the given value.
4−func Ptr[T any](v T) *T {
3+// To generically returns a pointer to the given value.
4+func To[T any](v T) *T {
55 return &v
66}
77
pkg/util/ptr/ptr_test.go+6−6
@@ -6,22 +6,22 @@ import (
66 "github.com/stretchr/testify/assert"
77)
88
9−func TestPtr(t *testing.T) {
10− p := Ptr(42)
9+func TestTo(t *testing.T) {
10+ p := To(42)
1111 assert.NotNil(t, p)
1212 assert.Equal(t, 42, *p)
1313
14− s := Ptr("hello")
14+ s := To("hello")
1515 assert.NotNil(t, s)
1616 assert.Equal(t, "hello", *s)
1717
18− b := Ptr(true)
18+ b := To(true)
1919 assert.NotNil(t, b)
2020 assert.True(t, *b)
2121}
2222
2323func TestDeref(t *testing.T) {
24− v := Deref(Ptr(99), 0)
24+ v := Deref(To(99), 0)
2525 assert.Equal(t, 99, v)
2626
2727 v = Deref[int](nil, 123)
@@ -30,7 +30,7 @@ func TestDeref(t *testing.T) {
3030 s := Deref[string](nil, "default")
3131 assert.Equal(t, "default", s)
3232
33− b := Deref(Ptr(true), false)
33+ b := Deref(To(true), false)
3434 assert.True(t, b)
3535
3636 b = Deref[bool](nil, false)
pkg/validation/options_test.go+2−2
@@ -69,7 +69,7 @@ func TestGoogleGroupOptionsWithoutServiceAccountJSON(t *testing.T) {
6969
7070func TestGoogleGroupOptionsWithoutAdminEmail(t *testing.T) {
7171 o := testOptions()
72− o.Providers[0].GoogleConfig.UseApplicationDefaultCredentials = ptr.Ptr(true)
72+ o.Providers[0].GoogleConfig.UseApplicationDefaultCredentials = ptr.To(true)
7373 err := Validate(o)
7474 assert.NotEqual(t, nil, err)
7575
@@ -82,7 +82,7 @@ func TestGoogleGroupOptionsWithoutGroups(t *testing.T) {
8282 o := testOptions()
8383 // Set admin email and application default credentials but no groups - should still require them
8484 o.Providers[0].GoogleConfig.AdminEmail = "admin@example.com"
85− o.Providers[0].GoogleConfig.UseApplicationDefaultCredentials = ptr.Ptr(true)
85+ o.Providers[0].GoogleConfig.UseApplicationDefaultCredentials = ptr.To(true)
8686 err := Validate(o)
8787 // Should pass validation since google-group is now optional
8888 assert.Equal(t, nil, err)
pkg/validation/upstreams_test.go+5−5
@@ -26,7 +26,7 @@ var _ = Describe("Upstreams", func() {
2626 validStaticUpstream := options.Upstream{
2727 ID: "validStaticUpstream",
2828 Path: "/validStaticUpstream",
29− Static: ptr.Ptr(true),
29+ Static: ptr.To(true),
3030 }
3131 validFileUpstream := options.Upstream{
3232 ID: "validFileUpstream",
@@ -145,11 +145,11 @@ var _ = Describe("Upstreams", func() {
145145 ID: "foo",
146146 Path: "/foo",
147147 URI: "ftp://foo",
148− Static: ptr.Ptr(true),
148+ Static: ptr.To(true),
149149 FlushInterval: &flushInterval,
150− PassHostHeader: ptr.Ptr(true),
151− ProxyWebSockets: ptr.Ptr(true),
152− InsecureSkipTLSVerify: ptr.Ptr(true),
150+ PassHostHeader: ptr.To(true),
151+ ProxyWebSockets: ptr.To(true),
152+ InsecureSkipTLSVerify: ptr.To(true),
153153 },
154154 },
155155 },
providers/adfs_test.go+1−1
@@ -173,7 +173,7 @@ var _ = Describe("ADFS Provider Tests", func() {
173173 ProtectedResource: resource,
174174 Scope: "",
175175 }, options.Provider{
176− ADFSConfig: options.ADFSOptions{SkipScope: ptr.Ptr(true)},
176+ ADFSConfig: options.ADFSOptions{SkipScope: ptr.To(true)},
177177 })
178178
179179 result := p.GetLoginURL("https://example.com/adfs/oauth2/", "", "", url.Values{})
providers/ms_entra_id_test.go+3−3
@@ -25,7 +25,7 @@ func TestAzureEntraOIDCProviderNewMultiTenant(t *testing.T) {
2525 provider := NewMicrosoftEntraIDProvider(&ProviderData{},
2626 options.Provider{OIDCConfig: options.OIDCOptions{
2727 IssuerURL: "https://login.microsoftonline.com/common/v2.0",
28− InsecureSkipIssuerVerification: ptr.Ptr(true),
28+ InsecureSkipIssuerVerification: ptr.To(true),
2929 }},
3030 )
3131 g.Expect(provider.Data().ProviderName).To(Equal("Microsoft Entra ID"))
@@ -91,8 +91,8 @@ func TestAzureEntraOIDCProviderValidateSessionAllowedTenants(t *testing.T) {
9191 options.Provider{
9292 OIDCConfig: options.OIDCOptions{
9393 IssuerURL: "https://login.microsoftonline.com/common/v2.0",
94− InsecureSkipIssuerVerification: ptr.Ptr(true),
95− InsecureSkipNonce: ptr.Ptr(true),
94+ InsecureSkipIssuerVerification: ptr.To(true),
95+ InsecureSkipNonce: ptr.To(true),
9696 },
9797 MicrosoftEntraIDConfig: options.MicrosoftEntraIDOptions{
9898 AllowedTenants: []string{"85d7d600-7804-4d92-8d43-9c33c21c130c"},
providers/providers_test.go+4−4
@@ -82,7 +82,7 @@ func TestSkipOIDCDiscovery(t *testing.T) {
8282 ClientSecretFile: clientSecret,
8383 OIDCConfig: options.OIDCOptions{
8484 IssuerURL: msIssuerURL,
85− SkipDiscovery: ptr.Ptr(true),
85+ SkipDiscovery: ptr.To(true),
8686 },
8787 }
8888
@@ -109,7 +109,7 @@ func TestURLsCorrectlyParsed(t *testing.T) {
109109 RedeemURL: msTokenURL,
110110 OIDCConfig: options.OIDCOptions{
111111 IssuerURL: msIssuerURL,
112− SkipDiscovery: ptr.Ptr(true),
112+ SkipDiscovery: ptr.To(true),
113113 JwksURL: msKeysURL,
114114 },
115115 }
@@ -217,7 +217,7 @@ func TestScope(t *testing.T) {
217217 AllowedGroups: tc.allowedGroups,
218218 OIDCConfig: options.OIDCOptions{
219219 IssuerURL: msIssuerURL,
220− SkipDiscovery: ptr.Ptr(true),
220+ SkipDiscovery: ptr.To(true),
221221 JwksURL: msKeysURL,
222222 },
223223 }
@@ -298,7 +298,7 @@ func TestEmailClaimCorrectlySet(t *testing.T) {
298298 RedeemURL: msTokenURL,
299299 OIDCConfig: options.OIDCOptions{
300300 IssuerURL: msIssuerURL,
301− SkipDiscovery: ptr.Ptr(true),
301+ SkipDiscovery: ptr.To(true),
302302 JwksURL: msKeysURL,
303303 UserIDClaim: tc.userIDClaim,
304304 EmailClaim: tc.emailClaim,