diff --git a/options_test.go b/options_test.go index 996acaea..f1b60ed8 100644 --- a/options_test.go +++ b/options_test.go @@ -13,12 +13,16 @@ import ( "github.com/stretchr/testify/assert" ) +const cookieSecret = "foobar" +const clientID = "bazquux" +const clientSecret = "xyzzyplugh" + func testOptions() *Options { o := NewOptions() o.Upstreams = append(o.Upstreams, "http://127.0.0.1:8080/") - o.CookieSecret = "foobar" - o.ClientID = "bazquux" - o.ClientSecret = "xyzzyplugh" + o.CookieSecret = cookieSecret + o.ClientID = clientID + o.ClientSecret = clientSecret o.EmailDomains = []string{"*"} return o } @@ -45,15 +49,15 @@ func TestNewOptions(t *testing.T) { func TestClientSecretFileOptionFails(t *testing.T) { o := NewOptions() - o.CookieSecret = "foobar" - o.ClientID = "bazquux" - o.ClientSecretFile = "xyzzyplugh" + o.CookieSecret = cookieSecret + o.ClientID = clientID + o.ClientSecretFile = clientSecret o.EmailDomains = []string{"*"} err := o.Validate() assert.NotEqual(t, nil, err) p := o.provider.Data() - assert.Equal(t, "xyzzyplugh", p.ClientSecretFile) + assert.Equal(t, clientSecret, p.ClientSecretFile) assert.Equal(t, "", p.ClientSecret) s, err := p.GetClientSecret() @@ -75,8 +79,8 @@ func TestClientSecretFileOption(t *testing.T) { defer os.Remove(clientSecretFileName) o := NewOptions() - o.CookieSecret = "foobar" - o.ClientID = "bazquux" + o.CookieSecret = cookieSecret + o.ClientID = clientID o.ClientSecretFile = clientSecretFileName o.EmailDomains = []string{"*"} err = o.Validate() diff --git a/providers/azure.go b/providers/azure.go index b619e6fe..5b93064c 100644 --- a/providers/azure.go +++ b/providers/azure.go @@ -79,7 +79,6 @@ func (p *AzureProvider) Redeem(redirectURL, code string) (s *sessions.SessionSta return } - params := url.Values{} params.Add("redirect_uri", redirectURL) params.Add("client_id", p.ClientID) diff --git a/providers/azure_test.go b/providers/azure_test.go index 2fa7a0c8..33a04f57 100644 --- a/providers/azure_test.go +++ b/providers/azure_test.go @@ -112,9 +112,9 @@ func testAzureBackend(payload string) *httptest.Server { return httptest.NewServer(http.HandlerFunc( func(w http.ResponseWriter, r *http.Request) { - if (r.URL.Path != path || r.URL.RawQuery != query) && r.Method != "POST" { + if (r.URL.Path != path || r.URL.RawQuery != query) && r.Method != http.MethodPost { w.WriteHeader(404) - } else if r.Method == "POST" && r.Body != nil { + } else if r.Method == http.MethodPost && r.Body != nil { w.WriteHeader(200) w.Write([]byte(payload)) } else if !IsAuthorizedInHeader(r.Header) { diff --git a/providers/oidc.go b/providers/oidc.go index d687b425..14807831 100644 --- a/providers/oidc.go +++ b/providers/oidc.go @@ -140,11 +140,10 @@ func (p *OIDCProvider) findVerifiedIDToken(ctx context.Context, token *oauth2.To } if rawIDToken, present := getIDToken(); present { - verifiedIdToken, err := p.Verifier.Verify(ctx, rawIDToken) - return verifiedIdToken, err - } else { - return nil, nil + verifiedIDToken, err := p.Verifier.Verify(ctx, rawIDToken) + return verifiedIDToken, err } + return nil, nil } func (p *OIDCProvider) createSessionState(token *oauth2.Token, idToken *oidc.IDToken) (*sessions.SessionState, error) { diff --git a/providers/oidc_test.go b/providers/oidc_test.go index 865aac85..1f18b516 100644 --- a/providers/oidc_test.go +++ b/providers/oidc_test.go @@ -8,6 +8,7 @@ import ( "encoding/json" "errors" "fmt" + "golang.org/x/oauth2" "github.com/bmizerany/assert" @@ -58,7 +59,7 @@ var defaultIDToken idTokenClaims = idTokenClaims{ }, } -type fakeKeySetStub struct {} +type fakeKeySetStub struct{} func (fakeKeySetStub) VerifySignature(_ context.Context, jwt string) (payload []byte, err error) { decodeString, err := base64.RawURLEncoding.DecodeString(strings.Split(jwt, ".")[1]) @@ -98,7 +99,7 @@ func newOIDCProvider(serverURL *url.URL) *OIDCProvider { p := &OIDCProvider{ ProviderData: providerData, - Verifier: oidc.NewVerifier( + Verifier: oidc.NewVerifier( "https://issuer.example.com", fakeKeySetStub{}, &oidc.Config{ClientID: clientID}, @@ -235,30 +236,30 @@ func TestOIDCProvider_findVerifiedIdToken(t *testing.T) { defer server.Close() token := newOauth2Token() - signedIdToken, _ := newSignedTestIDToken(defaultIDToken) - tokenWithIdToken := token.WithExtra(map[string]interface{}{ - "id_token": signedIdToken, + signedIDToken, _ := newSignedTestIDToken(defaultIDToken) + tokenWithIDToken := token.WithExtra(map[string]interface{}{ + "id_token": signedIDToken, }) - verifiedIdToken, err := provider.findVerifiedIDToken(context.Background(), tokenWithIdToken) + verifiedIDToken, err := provider.findVerifiedIDToken(context.Background(), tokenWithIDToken) assert.Equal(t, true, err == nil) - assert.Equal(t, true, verifiedIdToken != nil) - assert.Equal(t, defaultIDToken.Issuer, verifiedIdToken.Issuer) - assert.Equal(t, defaultIDToken.Subject, verifiedIdToken.Subject) + assert.Equal(t, true, verifiedIDToken != nil) + assert.Equal(t, defaultIDToken.Issuer, verifiedIDToken.Issuer) + assert.Equal(t, defaultIDToken.Subject, verifiedIDToken.Subject) // When the validation fails the response should be nil defaultIDToken.Id = "this-id-fails-validation" - signedIdToken, _ = newSignedTestIDToken(defaultIDToken) - tokenWithIdToken = token.WithExtra(map[string]interface{}{ - "id_token": signedIdToken, + signedIDToken, _ = newSignedTestIDToken(defaultIDToken) + tokenWithIDToken = token.WithExtra(map[string]interface{}{ + "id_token": signedIDToken, }) - verifiedIdToken, err = provider.findVerifiedIDToken(context.Background(), tokenWithIdToken) + verifiedIDToken, err = provider.findVerifiedIDToken(context.Background(), tokenWithIDToken) assert.Equal(t, errors.New("failed to verify signature: the validation failed for subject [123456789]"), err) - assert.Equal(t, true, verifiedIdToken == nil) + assert.Equal(t, true, verifiedIDToken == nil) // When there is no id token in the oauth token - verifiedIdToken, err = provider.findVerifiedIDToken(context.Background(), newOauth2Token()) + verifiedIDToken, err = provider.findVerifiedIDToken(context.Background(), newOauth2Token()) assert.Equal(t, nil, err) - assert.Equal(t, true, verifiedIdToken == nil) + assert.Equal(t, true, verifiedIDToken == nil) } diff --git a/providers/provider_data.go b/providers/provider_data.go index 8ecda15e..5df5b791 100644 --- a/providers/provider_data.go +++ b/providers/provider_data.go @@ -2,9 +2,10 @@ package providers import ( "errors" - "github.com/pusher/oauth2_proxy/pkg/logger" "io/ioutil" "net/url" + + "github.com/pusher/oauth2_proxy/pkg/logger" ) // ProviderData contains information required to configure all implementations