@@ -15,8 +15,8 @@ import (
1515 "testing"
1616 "time"
1717
18− "github.com/pusher/oauth2_proxy/providers"
1918 "github.com/mbland/hmacauth"
19+ "github.com/pusher/oauth2_proxy/providers"
2020 "github.com/stretchr/testify/assert"
2121)
2222
@@ -98,28 +98,28 @@ type TestProvider struct {
9898 ValidToken bool
9999}
100100
101−func NewTestProvider(provider_url *url.URL, email_address string) *TestProvider {
101+func NewTestProvider(providerURL *url.URL, emailAddress string) *TestProvider {
102102 return &TestProvider{
103103 ProviderData: &providers.ProviderData{
104104 ProviderName: "Test Provider",
105105 LoginURL: &url.URL{
106106 Scheme: "http",
107− Host: provider_url.Host,
107+ Host: providerURL.Host,
108108 Path: "/oauth/authorize",
109109 },
110110 RedeemURL: &url.URL{
111111 Scheme: "http",
112− Host: provider_url.Host,
112+ Host: providerURL.Host,
113113 Path: "/oauth/token",
114114 },
115115 ProfileURL: &url.URL{
116116 Scheme: "http",
117− Host: provider_url.Host,
117+ Host: providerURL.Host,
118118 Path: "/api/v1/profile",
119119 },
120120 Scope: "profile.email",
121121 },
122− EmailAddress: email_address,
122+ EmailAddress: emailAddress,
123123 }
124124}
125125
@@ -132,11 +132,10 @@ func (tp *TestProvider) ValidateSessionState(session *providers.SessionState) bo
132132}
133133
134134func TestBasicAuthPassword(t *testing.T) {
135− provider_server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
135+ providerServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
136136 log.Printf("%#v", r)
137− url := r.URL
138− payload := ""
139− switch url.Path {
137+ var payload string
138+ switch r.URL.Path {
140139 case "/oauth/token":
141140 payload = `{"access_token": "my_auth_token"}`
142141 default:
@@ -149,7 +148,7 @@ func TestBasicAuthPassword(t *testing.T) {
149148 w.Write([]byte(payload))
150149 }))
151150 opts := NewOptions()
152− opts.Upstreams = append(opts.Upstreams, provider_server.URL)
151+ opts.Upstreams = append(opts.Upstreams, providerServer.URL)
153152 // The CookieSecret must be 32 bytes in order to create the AES
154153 // cipher.
155154 opts.CookieSecret = "xyzzyplughxyzzyplughxyzzyplughxp"
@@ -161,13 +160,13 @@ func TestBasicAuthPassword(t *testing.T) {
161160 opts.BasicAuthPassword = "This is a secure password"
162161 opts.Validate()
163162
164− provider_url, _ := url.Parse(provider_server.URL)
165− const email_address = "michael.bland@gsa.gov"
166− const user_name = "michael.bland"
163+ providerURL, _ := url.Parse(providerServer.URL)
164+ const emailAddress = "michael.bland@gsa.gov"
165+ const username = "michael.bland"
167166
168− opts.provider = NewTestProvider(provider_url, email_address)
167+ opts.provider = NewTestProvider(providerURL, emailAddress)
169168 proxy := NewOAuthProxy(opts, func(email string) bool {
170− return email == email_address
169+ return email == emailAddress
171170 })
172171
173172 rw := httptest.NewRecorder()
@@ -182,10 +181,10 @@ func TestBasicAuthPassword(t *testing.T) {
182181
183182 cookieName := proxy.CookieName
184183 var value string
185− key_prefix := cookieName + "="
184+ keyPrefix := cookieName + "="
186185
187186 for _, field := range strings.Split(cookie, "; ") {
188− value = strings.TrimPrefix(field, key_prefix)
187+ value = strings.TrimPrefix(field, keyPrefix)
189188 if value != field {
190189 break
191190 } else {
@@ -206,15 +205,15 @@ func TestBasicAuthPassword(t *testing.T) {
206205 rw = httptest.NewRecorder()
207206 proxy.ServeHTTP(rw, req)
208207
209− expectedHeader := "Basic " + base64.StdEncoding.EncodeToString([]byte(user_name+":"+opts.BasicAuthPassword))
208+ expectedHeader := "Basic " + base64.StdEncoding.EncodeToString([]byte(username+":"+opts.BasicAuthPassword))
210209 assert.Equal(t, expectedHeader, rw.Body.String())
211− provider_server.Close()
210+ providerServer.Close()
212211}
213212
214213type PassAccessTokenTest struct {
215− provider_server *httptest.Server
216− proxy *OAuthProxy
217− opts *Options
214+ providerServer *httptest.Server
215+ proxy *OAuthProxy
216+ opts *Options
218217}
219218
220219type PassAccessTokenTestOptions struct {
@@ -224,12 +223,11 @@ type PassAccessTokenTestOptions struct {
224223func NewPassAccessTokenTest(opts PassAccessTokenTestOptions) *PassAccessTokenTest {
225224 t := &PassAccessTokenTest{}
226225
227− t.provider_server = httptest.NewServer(
226+ t.providerServer = httptest.NewServer(
228227 http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
229228 log.Printf("%#v", r)
230− url := r.URL
231− payload := ""
232− switch url.Path {
229+ var payload string
230+ switch r.URL.Path {
233231 case "/oauth/token":
234232 payload = `{"access_token": "my_auth_token"}`
235233 default:
@@ -243,7 +241,7 @@ func NewPassAccessTokenTest(opts PassAccessTokenTestOptions) *PassAccessTokenTes
243241 }))
244242
245243 t.opts = NewOptions()
246− t.opts.Upstreams = append(t.opts.Upstreams, t.provider_server.URL)
244+ t.opts.Upstreams = append(t.opts.Upstreams, t.providerServer.URL)
247245 // The CookieSecret must be 32 bytes in order to create the AES
248246 // cipher.
249247 t.opts.CookieSecret = "xyzzyplughxyzzyplughxyzzyplughxp"
@@ -253,21 +251,21 @@ func NewPassAccessTokenTest(opts PassAccessTokenTestOptions) *PassAccessTokenTes
253251 t.opts.PassAccessToken = opts.PassAccessToken
254252 t.opts.Validate()
255253
256− provider_url, _ := url.Parse(t.provider_server.URL)
257− const email_address = "michael.bland@gsa.gov"
254+ providerURL, _ := url.Parse(t.providerServer.URL)
255+ const emailAddress = "michael.bland@gsa.gov"
258256
259− t.opts.provider = NewTestProvider(provider_url, email_address)
257+ t.opts.provider = NewTestProvider(providerURL, emailAddress)
260258 t.proxy = NewOAuthProxy(t.opts, func(email string) bool {
261− return email == email_address
259+ return email == emailAddress
262260 })
263261 return t
264262}
265263
266−func (pat_test *PassAccessTokenTest) Close() {
267− pat_test.provider_server.Close()
264+func (patTest *PassAccessTokenTest) Close() {
265+ patTest.providerServer.Close()
268266}
269267
270−func (pat_test *PassAccessTokenTest) getCallbackEndpoint() (http_code int,
268+func (patTest *PassAccessTokenTest) getCallbackEndpoint() (httpCode int,
271269 cookie string) {
272270 rw := httptest.NewRecorder()
273271 req, err := http.NewRequest("GET", "/oauth2/callback?code=callback_code&state=nonce:",
@@ -275,18 +273,18 @@ func (pat_test *PassAccessTokenTest) getCallbackEndpoint() (http_code int,
275273 if err != nil {
276274 return 0, ""
277275 }
278− req.AddCookie(pat_test.proxy.MakeCSRFCookie(req, "nonce", time.Hour, time.Now()))
279− pat_test.proxy.ServeHTTP(rw, req)
276+ req.AddCookie(patTest.proxy.MakeCSRFCookie(req, "nonce", time.Hour, time.Now()))
277+ patTest.proxy.ServeHTTP(rw, req)
280278 return rw.Code, rw.HeaderMap["Set-Cookie"][1]
281279}
282280
283−func (pat_test *PassAccessTokenTest) getRootEndpoint(cookie string) (http_code int, access_token string) {
284− cookieName := pat_test.proxy.CookieName
281+func (patTest *PassAccessTokenTest) getRootEndpoint(cookie string) (httpCode int, accessToken string) {
282+ cookieName := patTest.proxy.CookieName
285283 var value string
286− key_prefix := cookieName + "="
284+ keyPrefix := cookieName + "="
287285
288286 for _, field := range strings.Split(cookie, "; ") {
289− value = strings.TrimPrefix(field, key_prefix)
287+ value = strings.TrimPrefix(field, keyPrefix)
290288 if value != field {
291289 break
292290 } else {
@@ -310,18 +308,18 @@ func (pat_test *PassAccessTokenTest) getRootEndpoint(cookie string) (http_code i
310308 })
311309
312310 rw := httptest.NewRecorder()
313− pat_test.proxy.ServeHTTP(rw, req)
311+ patTest.proxy.ServeHTTP(rw, req)
314312 return rw.Code, rw.Body.String()
315313}
316314
317315func TestForwardAccessTokenUpstream(t *testing.T) {
318− pat_test := NewPassAccessTokenTest(PassAccessTokenTestOptions{
316+ patTest := NewPassAccessTokenTest(PassAccessTokenTestOptions{
319317 PassAccessToken: true,
320318 })
321− defer pat_test.Close()
319+ defer patTest.Close()
322320
323321 // A successful validation will redirect and set the auth cookie.
324− code, cookie := pat_test.getCallbackEndpoint()
322+ code, cookie := patTest.getCallbackEndpoint()
325323 if code != 302 {
326324 t.Fatalf("expected 302; got %d", code)
327325 }
@@ -330,7 +328,7 @@ func TestForwardAccessTokenUpstream(t *testing.T) {
330328 // Now we make a regular request; the access_token from the cookie is
331329 // forwarded as the "X-Forwarded-Access-Token" header. The token is
332330 // read by the test provider server and written in the response body.
333− code, payload := pat_test.getRootEndpoint(cookie)
331+ code, payload := patTest.getRootEndpoint(cookie)
334332 if code != 200 {
335333 t.Fatalf("expected 200; got %d", code)
336334 }
@@ -338,13 +336,13 @@ func TestForwardAccessTokenUpstream(t *testing.T) {
338336}
339337
340338func TestDoNotForwardAccessTokenUpstream(t *testing.T) {
341− pat_test := NewPassAccessTokenTest(PassAccessTokenTestOptions{
339+ patTest := NewPassAccessTokenTest(PassAccessTokenTestOptions{
342340 PassAccessToken: false,
343341 })
344− defer pat_test.Close()
342+ defer patTest.Close()
345343
346344 // A successful validation will redirect and set the auth cookie.
347− code, cookie := pat_test.getCallbackEndpoint()
345+ code, cookie := patTest.getCallbackEndpoint()
348346 if code != 302 {
349347 t.Fatalf("expected 302; got %d", code)
350348 }
@@ -352,7 +350,7 @@ func TestDoNotForwardAccessTokenUpstream(t *testing.T) {
352350
353351 // Now we make a regular request, but the access token header should
354352 // not be present.
355− code, payload := pat_test.getRootEndpoint(cookie)
353+ code, payload := patTest.getRootEndpoint(cookie)
356354 if code != 200 {
357355 t.Fatalf("expected 200; got %d", code)
358356 }
@@ -360,49 +358,49 @@ func TestDoNotForwardAccessTokenUpstream(t *testing.T) {
360358}
361359
362360type SignInPageTest struct {
363− opts *Options
364− proxy *OAuthProxy
365− sign_in_regexp *regexp.Regexp
366− sign_in_provider_regexp *regexp.Regexp
361+ opts *Options
362+ proxy *OAuthProxy
363+ signInRegexp *regexp.Regexp
364+ signInProviderRegexp *regexp.Regexp
367365}
368366
369367const signInRedirectPattern = `<input type="hidden" name="rd" value="(.*)">`
370368const signInSkipProvider = `>Found<`
371369
372370func NewSignInPageTest(skipProvider bool) *SignInPageTest {
373− var sip_test SignInPageTest
371+ var sipTest SignInPageTest
374372
375− sip_test.opts = NewOptions()
376− sip_test.opts.CookieSecret = "foobar"
377− sip_test.opts.ClientID = "bazquux"
378− sip_test.opts.ClientSecret = "xyzzyplugh"
379− sip_test.opts.SkipProviderButton = skipProvider
380− sip_test.opts.Validate()
373+ sipTest.opts = NewOptions()
374+ sipTest.opts.CookieSecret = "foobar"
375+ sipTest.opts.ClientID = "bazquux"
376+ sipTest.opts.ClientSecret = "xyzzyplugh"
377+ sipTest.opts.SkipProviderButton = skipProvider
378+ sipTest.opts.Validate()
381379
382− sip_test.proxy = NewOAuthProxy(sip_test.opts, func(email string) bool {
380+ sipTest.proxy = NewOAuthProxy(sipTest.opts, func(email string) bool {
383381 return true
384382 })
385− sip_test.sign_in_regexp = regexp.MustCompile(signInRedirectPattern)
386− sip_test.sign_in_provider_regexp = regexp.MustCompile(signInSkipProvider)
383+ sipTest.signInRegexp = regexp.MustCompile(signInRedirectPattern)
384+ sipTest.signInProviderRegexp = regexp.MustCompile(signInSkipProvider)
387385
388− return &sip_test
386+ return &sipTest
389387}
390388
391−func (sip_test *SignInPageTest) GetEndpoint(endpoint string) (int, string) {
389+func (sipTest *SignInPageTest) GetEndpoint(endpoint string) (int, string) {
392390 rw := httptest.NewRecorder()
393391 req, _ := http.NewRequest("GET", endpoint, strings.NewReader(""))
394− sip_test.proxy.ServeHTTP(rw, req)
392+ sipTest.proxy.ServeHTTP(rw, req)
395393 return rw.Code, rw.Body.String()
396394}
397395
398396func TestSignInPageIncludesTargetRedirect(t *testing.T) {
399− sip_test := NewSignInPageTest(false)
397+ sipTest := NewSignInPageTest(false)
400398 const endpoint = "/some/random/endpoint"
401399
402− code, body := sip_test.GetEndpoint(endpoint)
400+ code, body := sipTest.GetEndpoint(endpoint)
403401 assert.Equal(t, 403, code)
404402
405− match := sip_test.sign_in_regexp.FindStringSubmatch(body)
403+ match := sipTest.signInRegexp.FindStringSubmatch(body)
406404 if match == nil {
407405 t.Fatal("Did not find pattern in body: " +
408406 signInRedirectPattern + "\nBody:\n" + body)
@@ -414,11 +412,11 @@ func TestSignInPageIncludesTargetRedirect(t *testing.T) {
414412}
415413
416414func TestSignInPageDirectAccessRedirectsToRoot(t *testing.T) {
417− sip_test := NewSignInPageTest(false)
418− code, body := sip_test.GetEndpoint("/oauth2/sign_in")
415+ sipTest := NewSignInPageTest(false)
416+ code, body := sipTest.GetEndpoint("/oauth2/sign_in")
419417 assert.Equal(t, 200, code)
420418
421− match := sip_test.sign_in_regexp.FindStringSubmatch(body)
419+ match := sipTest.signInRegexp.FindStringSubmatch(body)
422420 if match == nil {
423421 t.Fatal("Did not find pattern in body: " +
424422 signInRedirectPattern + "\nBody:\n" + body)
@@ -429,13 +427,13 @@ func TestSignInPageDirectAccessRedirectsToRoot(t *testing.T) {
429427}
430428
431429func TestSignInPageSkipProvider(t *testing.T) {
432− sip_test := NewSignInPageTest(true)
430+ sipTest := NewSignInPageTest(true)
433431 const endpoint = "/some/random/endpoint"
434432
435− code, body := sip_test.GetEndpoint(endpoint)
433+ code, body := sipTest.GetEndpoint(endpoint)
436434 assert.Equal(t, 302, code)
437435
438− match := sip_test.sign_in_provider_regexp.FindStringSubmatch(body)
436+ match := sipTest.signInProviderRegexp.FindStringSubmatch(body)
439437 if match == nil {
440438 t.Fatal("Did not find pattern in body: " +
441439 signInSkipProvider + "\nBody:\n" + body)
@@ -443,13 +441,13 @@ func TestSignInPageSkipProvider(t *testing.T) {
443441}
444442
445443func TestSignInPageSkipProviderDirect(t *testing.T) {
446− sip_test := NewSignInPageTest(true)
444+ sipTest := NewSignInPageTest(true)
447445 const endpoint = "/sign_in"
448446
449− code, body := sip_test.GetEndpoint(endpoint)
447+ code, body := sipTest.GetEndpoint(endpoint)
450448 assert.Equal(t, 302, code)
451449
452− match := sip_test.sign_in_provider_regexp.FindStringSubmatch(body)
450+ match := sipTest.signInProviderRegexp.FindStringSubmatch(body)
453451 if match == nil {
454452 t.Fatal("Did not find pattern in body: " +
455453 signInSkipProvider + "\nBody:\n" + body)
@@ -457,50 +455,50 @@ func TestSignInPageSkipProviderDirect(t *testing.T) {
457455}
458456
459457type ProcessCookieTest struct {
460− opts *Options
461− proxy *OAuthProxy
462− rw *httptest.ResponseRecorder
463− req *http.Request
464− provider TestProvider
465− response_code int
466− validate_user bool
458+ opts *Options
459+ proxy *OAuthProxy
460+ rw *httptest.ResponseRecorder
461+ req *http.Request
462+ provider TestProvider
463+ responseCode int
464+ validateUser bool
467465}
468466
469467type ProcessCookieTestOpts struct {
470− provider_validate_cookie_response bool
468+ providerValidateCookieResponse bool
471469}
472470
473471func NewProcessCookieTest(opts ProcessCookieTestOpts) *ProcessCookieTest {
474− var pc_test ProcessCookieTest
472+ var pcTest ProcessCookieTest
475473
476− pc_test.opts = NewOptions()
477− pc_test.opts.ClientID = "bazquux"
478− pc_test.opts.ClientSecret = "xyzzyplugh"
479− pc_test.opts.CookieSecret = "0123456789abcdefabcd"
474+ pcTest.opts = NewOptions()
475+ pcTest.opts.ClientID = "bazquux"
476+ pcTest.opts.ClientSecret = "xyzzyplugh"
477+ pcTest.opts.CookieSecret = "0123456789abcdefabcd"
480478 // First, set the CookieRefresh option so proxy.AesCipher is created,
481479 // needed to encrypt the access_token.
482− pc_test.opts.CookieRefresh = time.Hour
483− pc_test.opts.Validate()
480+ pcTest.opts.CookieRefresh = time.Hour
481+ pcTest.opts.Validate()
484482
485− pc_test.proxy = NewOAuthProxy(pc_test.opts, func(email string) bool {
486− return pc_test.validate_user
483+ pcTest.proxy = NewOAuthProxy(pcTest.opts, func(email string) bool {
484+ return pcTest.validateUser
487485 })
488− pc_test.proxy.provider = &TestProvider{
489− ValidToken: opts.provider_validate_cookie_response,
486+ pcTest.proxy.provider = &TestProvider{
487+ ValidToken: opts.providerValidateCookieResponse,
490488 }
491489
492490 // Now, zero-out proxy.CookieRefresh for the cases that don't involve
493491 // access_token validation.
494− pc_test.proxy.CookieRefresh = time.Duration(0)
495− pc_test.rw = httptest.NewRecorder()
496− pc_test.req, _ = http.NewRequest("GET", "/", strings.NewReader(""))
497− pc_test.validate_user = true
498− return &pc_test
492+ pcTest.proxy.CookieRefresh = time.Duration(0)
493+ pcTest.rw = httptest.NewRecorder()
494+ pcTest.req, _ = http.NewRequest("GET", "/", strings.NewReader(""))
495+ pcTest.validateUser = true
496+ return &pcTest
499497}
500498
501499func NewProcessCookieTestWithDefaults() *ProcessCookieTest {
502500 return NewProcessCookieTest(ProcessCookieTestOpts{
503− provider_validate_cookie_response: true,
501+ providerValidateCookieResponse: true,
504502 })
505503}
506504
@@ -522,12 +520,12 @@ func (p *ProcessCookieTest) LoadCookiedSession() (*providers.SessionState, time.
522520}
523521
524522func TestLoadCookiedSession(t *testing.T) {
525− pc_test := NewProcessCookieTestWithDefaults()
523+ pcTest := NewProcessCookieTestWithDefaults()
526524
527525 startSession := &providers.SessionState{Email: "michael.bland@gsa.gov", AccessToken: "my_access_token"}
528− pc_test.SaveSession(startSession, time.Now())
526+ pcTest.SaveSession(startSession, time.Now())
529527
530− session, _, err := pc_test.LoadCookiedSession()
528+ session, _, err := pcTest.LoadCookiedSession()
531529 assert.Equal(t, nil, err)
532530 assert.Equal(t, startSession.Email, session.Email)
533531 assert.Equal(t, "michael.bland", session.User)
@@ -535,9 +533,9 @@ func TestLoadCookiedSession(t *testing.T) {
535533}
536534
537535func TestProcessCookieNoCookieError(t *testing.T) {
538− pc_test := NewProcessCookieTestWithDefaults()
536+ pcTest := NewProcessCookieTestWithDefaults()
539537
540− session, _, err := pc_test.LoadCookiedSession()
538+ session, _, err := pcTest.LoadCookiedSession()
541539 assert.Equal(t, "Cookie \"_oauth2_proxy\" not present", err.Error())
542540 if session != nil {
543541 t.Errorf("expected nil session. got %#v", session)
@@ -545,14 +543,14 @@ func TestProcessCookieNoCookieError(t *testing.T) {
545543}
546544
547545func TestProcessCookieRefreshNotSet(t *testing.T) {
548− pc_test := NewProcessCookieTestWithDefaults()
549− pc_test.proxy.CookieExpire = time.Duration(23) * time.Hour
546+ pcTest := NewProcessCookieTestWithDefaults()
547+ pcTest.proxy.CookieExpire = time.Duration(23) * time.Hour
550548 reference := time.Now().Add(time.Duration(-2) * time.Hour)
551549
552550 startSession := &providers.SessionState{Email: "michael.bland@gsa.gov", AccessToken: "my_access_token"}
553− pc_test.SaveSession(startSession, reference)
551+ pcTest.SaveSession(startSession, reference)
554552
555− session, age, err := pc_test.LoadCookiedSession()
553+ session, age, err := pcTest.LoadCookiedSession()
556554 assert.Equal(t, nil, err)
557555 if age < time.Duration(-2)*time.Hour {
558556 t.Errorf("cookie too young %v", age)
@@ -561,13 +559,13 @@ func TestProcessCookieRefreshNotSet(t *testing.T) {
561559}
562560
563561func TestProcessCookieFailIfCookieExpired(t *testing.T) {
564− pc_test := NewProcessCookieTestWithDefaults()
565− pc_test.proxy.CookieExpire = time.Duration(24) * time.Hour
562+ pcTest := NewProcessCookieTestWithDefaults()
563+ pcTest.proxy.CookieExpire = time.Duration(24) * time.Hour
566564 reference := time.Now().Add(time.Duration(25) * time.Hour * -1)
567565 startSession := &providers.SessionState{Email: "michael.bland@gsa.gov", AccessToken: "my_access_token"}
568− pc_test.SaveSession(startSession, reference)
566+ pcTest.SaveSession(startSession, reference)
569567
570− session, _, err := pc_test.LoadCookiedSession()
568+ session, _, err := pcTest.LoadCookiedSession()
571569 assert.NotEqual(t, nil, err)
572570 if session != nil {
573571 t.Errorf("expected nil session %#v", session)
@@ -575,14 +573,14 @@ func TestProcessCookieFailIfCookieExpired(t *testing.T) {
575573}
576574
577575func TestProcessCookieFailIfRefreshSetAndCookieExpired(t *testing.T) {
578− pc_test := NewProcessCookieTestWithDefaults()
579− pc_test.proxy.CookieExpire = time.Duration(24) * time.Hour
576+ pcTest := NewProcessCookieTestWithDefaults()
577+ pcTest.proxy.CookieExpire = time.Duration(24) * time.Hour
580578 reference := time.Now().Add(time.Duration(25) * time.Hour * -1)
581579 startSession := &providers.SessionState{Email: "michael.bland@gsa.gov", AccessToken: "my_access_token"}
582− pc_test.SaveSession(startSession, reference)
580+ pcTest.SaveSession(startSession, reference)
583581
584− pc_test.proxy.CookieRefresh = time.Hour
585− session, _, err := pc_test.LoadCookiedSession()
582+ pcTest.proxy.CookieRefresh = time.Hour
583+ session, _, err := pcTest.LoadCookiedSession()
586584 assert.NotEqual(t, nil, err)
587585 if session != nil {
588586 t.Errorf("expected nil session %#v", session)
@@ -590,10 +588,10 @@ func TestProcessCookieFailIfRefreshSetAndCookieExpired(t *testing.T) {
590588}
591589
592590func NewAuthOnlyEndpointTest() *ProcessCookieTest {
593− pc_test := NewProcessCookieTestWithDefaults()
594− pc_test.req, _ = http.NewRequest("GET",
595− pc_test.opts.ProxyPrefix+"/auth", nil)
596− return pc_test
591+ pcTest := NewProcessCookieTestWithDefaults()
592+ pcTest.req, _ = http.NewRequest("GET",
593+ pcTest.opts.ProxyPrefix+"/auth", nil)
594+ return pcTest
597595}
598596
599597func TestAuthOnlyEndpointAccepted(t *testing.T) {
@@ -636,7 +634,7 @@ func TestAuthOnlyEndpointUnauthorizedOnEmailValidationFailure(t *testing.T) {
636634 startSession := &providers.SessionState{
637635 Email: "michael.bland@gsa.gov", AccessToken: "my_access_token"}
638636 test.SaveSession(startSession, time.Now())
639− test.validate_user = false
637+ test.validateUser = false
640638
641639 test.proxy.ServeHTTP(test.rw, test.req)
642640 assert.Equal(t, http.StatusUnauthorized, test.rw.Code)
@@ -645,33 +643,33 @@ func TestAuthOnlyEndpointUnauthorizedOnEmailValidationFailure(t *testing.T) {
645643}
646644
647645func TestAuthOnlyEndpointSetXAuthRequestHeaders(t *testing.T) {
648− var pc_test ProcessCookieTest
646+ var pcTest ProcessCookieTest
649647
650− pc_test.opts = NewOptions()
651− pc_test.opts.SetXAuthRequest = true
652− pc_test.opts.Validate()
648+ pcTest.opts = NewOptions()
649+ pcTest.opts.SetXAuthRequest = true
650+ pcTest.opts.Validate()
653651
654− pc_test.proxy = NewOAuthProxy(pc_test.opts, func(email string) bool {
655− return pc_test.validate_user
652+ pcTest.proxy = NewOAuthProxy(pcTest.opts, func(email string) bool {
653+ return pcTest.validateUser
656654 })
657− pc_test.proxy.provider = &TestProvider{
655+ pcTest.proxy.provider = &TestProvider{
658656 ValidToken: true,
659657 }
660658
661− pc_test.validate_user = true
659+ pcTest.validateUser = true
662660
663− pc_test.rw = httptest.NewRecorder()
664− pc_test.req, _ = http.NewRequest("GET",
665− pc_test.opts.ProxyPrefix+"/auth", nil)
661+ pcTest.rw = httptest.NewRecorder()
662+ pcTest.req, _ = http.NewRequest("GET",
663+ pcTest.opts.ProxyPrefix+"/auth", nil)
666664
667665 startSession := &providers.SessionState{
668666 User: "oauth_user", Email: "oauth_user@example.com", AccessToken: "oauth_token"}
669− pc_test.SaveSession(startSession, time.Now())
667+ pcTest.SaveSession(startSession, time.Now())
670668
671− pc_test.proxy.ServeHTTP(pc_test.rw, pc_test.req)
672− assert.Equal(t, http.StatusAccepted, pc_test.rw.Code)
673− assert.Equal(t, "oauth_user", pc_test.rw.HeaderMap["X-Auth-Request-User"][0])
674− assert.Equal(t, "oauth_user@example.com", pc_test.rw.HeaderMap["X-Auth-Request-Email"][0])
669+ pcTest.proxy.ServeHTTP(pcTest.rw, pcTest.req)
670+ assert.Equal(t, http.StatusAccepted, pcTest.rw.Code)
671+ assert.Equal(t, "oauth_user", pcTest.rw.HeaderMap["X-Auth-Request-User"][0])
672+ assert.Equal(t, "oauth_user@example.com", pcTest.rw.HeaderMap["X-Auth-Request-Email"][0])
675673}
676674
677675func TestAuthSkippedForPreflightRequests(t *testing.T) {
@@ -689,8 +687,8 @@ func TestAuthSkippedForPreflightRequests(t *testing.T) {
689687 opts.SkipAuthPreflight = true
690688 opts.Validate()
691689
692− upstream_url, _ := url.Parse(upstream.URL)
693− opts.provider = NewTestProvider(upstream_url, "")
690+ upstreamURL, _ := url.Parse(upstream.URL)
691+ opts.provider = NewTestProvider(upstreamURL, "")
694692
695693 proxy := NewOAuthProxy(opts, func(string) bool { return false })
696694 rw := httptest.NewRecorder()
@@ -723,7 +721,7 @@ func (v *SignatureAuthenticator) Authenticate(w http.ResponseWriter, r *http.Req
723721type SignatureTest struct {
724722 opts *Options
725723 upstream *httptest.Server
726− upstream_host string
724+ upstreamHost string
727725 provider *httptest.Server
728726 header http.Header
729727 rw *httptest.ResponseRecorder
@@ -740,20 +738,20 @@ func NewSignatureTest() *SignatureTest {
740738 authenticator := &SignatureAuthenticator{}
741739 upstream := httptest.NewServer(
742740 http.HandlerFunc(authenticator.Authenticate))
743− upstream_url, _ := url.Parse(upstream.URL)
741+ upstreamURL, _ := url.Parse(upstream.URL)
744742 opts.Upstreams = append(opts.Upstreams, upstream.URL)
745743
746744 providerHandler := func(w http.ResponseWriter, r *http.Request) {
747745 w.Write([]byte(`{"access_token": "my_auth_token"}`))
748746 }
749747 provider := httptest.NewServer(http.HandlerFunc(providerHandler))
750− provider_url, _ := url.Parse(provider.URL)
751− opts.provider = NewTestProvider(provider_url, "mbland@acm.org")
748+ providerURL, _ := url.Parse(provider.URL)
749+ opts.provider = NewTestProvider(providerURL, "mbland@acm.org")
752750
753751 return &SignatureTest{
754752 opts,
755753 upstream,
756− upstream_url.Host,
754+ upstreamURL.Host,
757755 provider,
758756 make(http.Header),
759757 httptest.NewRecorder(),