From 930b331a5b2953d7955404e1e6a27698b6c82ac6 Mon Sep 17 00:00:00 2001 From: Rui Yang Date: Thu, 16 Jan 2020 15:30:47 -0500 Subject: [PATCH] use PreferredUsername Signed-off-by: Rui Yang --- connector/oauth/oauth.go | 13 ++++++------- connector/oauth/oauth_test.go | 10 ++++------ 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/connector/oauth/oauth.go b/connector/oauth/oauth.go index 74424c2d..056a1715 100644 --- a/connector/oauth/oauth.go +++ b/connector/oauth/oauth.go @@ -14,9 +14,10 @@ import ( "strings" "time" + "golang.org/x/oauth2" + "github.com/dexidp/dex/connector" "github.com/dexidp/dex/pkg/log" - "golang.org/x/oauth2" ) type oauthConnector struct { @@ -113,7 +114,6 @@ func newHTTPClient(rootCAs []string, insecureSkipVerify bool) (*http.Client, err } func (c *oauthConnector) LoginURL(scopes connector.Scopes, callbackURL, state string) (string, error) { - if c.redirectURI != callbackURL { return "", fmt.Errorf("expected callback URL %q did not match the URL in the config %q", callbackURL, c.redirectURI) } @@ -130,7 +130,6 @@ func (c *oauthConnector) LoginURL(scopes connector.Scopes, callbackURL, state st } func (c *oauthConnector) HandleCallback(s connector.Scopes, r *http.Request) (identity connector.Identity, err error) { - q := r.URL.Query() if errType := q.Get("error"); errType != "" { return identity, errors.New(q.Get("error_description")) @@ -185,7 +184,7 @@ func (c *oauthConnector) HandleCallback(s connector.Scopes, r *http.Request) (id identity.UserID, _ = userInfoResult[c.userIDKey].(string) identity.Username, _ = userInfoResult[c.userNameKey].(string) - identity.Name, _ = userInfoResult["name"].(string) + identity.PreferredUsername, _ = userInfoResult["name"].(string) identity.Email, _ = userInfoResult["email"].(string) identity.EmailVerified, _ = userInfoResult["email_verified"].(bool) @@ -195,7 +194,7 @@ func (c *oauthConnector) HandleCallback(s connector.Scopes, r *http.Request) (id c.addGroupsFromMap(groups, userInfoResult) c.addGroupsFromToken(groups, token.AccessToken) - for groupName, _ := range groups { + for groupName := range groups { identity.Groups = append(identity.Groups, groupName) } } @@ -215,7 +214,7 @@ func (c *oauthConnector) HandleCallback(s connector.Scopes, r *http.Request) (id func (c *oauthConnector) addGroupsFromMap(groups map[string]bool, result map[string]interface{}) error { groupsClaim, ok := result[c.groupsKey].([]interface{}) if !ok { - return errors.New("Cant convert to array") + return errors.New("cant convert to array") } for _, group := range groupsClaim { @@ -230,7 +229,7 @@ func (c *oauthConnector) addGroupsFromMap(groups map[string]bool, result map[str func (c *oauthConnector) addGroupsFromToken(groups map[string]bool, token string) error { parts := strings.Split(token, ".") if len(parts) < 2 { - return errors.New("Invalid token") + return errors.New("invalid token") } decoded, err := decode(parts[1]) diff --git a/connector/oauth/oauth_test.go b/connector/oauth/oauth_test.go index cd39d7f9..a496bb82 100644 --- a/connector/oauth/oauth_test.go +++ b/connector/oauth/oauth_test.go @@ -13,9 +13,10 @@ import ( "sort" "testing" - "github.com/dexidp/dex/connector" "github.com/sirupsen/logrus" jose "gopkg.in/square/go-jose.v2" + + "github.com/dexidp/dex/connector" ) func TestOpen(t *testing.T) { @@ -67,7 +68,6 @@ func TestLoginURL(t *testing.T) { } func TestHandleCallBackForGroupsInUserInfo(t *testing.T) { - tokenClaims := map[string]interface{}{} userInfoClaims := map[string]interface{}{ @@ -92,7 +92,7 @@ func TestHandleCallBackForGroupsInUserInfo(t *testing.T) { expectEqual(t, len(identity.Groups), 2) expectEqual(t, identity.Groups[0], "admin-group") expectEqual(t, identity.Groups[1], "user-group") - expectEqual(t, identity.Name, "test-name") + expectEqual(t, identity.PreferredUsername, "test-name") expectEqual(t, identity.UserID, "test-user-id") expectEqual(t, identity.Username, "test-username") expectEqual(t, identity.Email, "test-email") @@ -100,7 +100,6 @@ func TestHandleCallBackForGroupsInUserInfo(t *testing.T) { } func TestHandleCallBackForGroupsInToken(t *testing.T) { - tokenClaims := map[string]interface{}{ "groups_key": []string{"test-group"}, } @@ -124,7 +123,7 @@ func TestHandleCallBackForGroupsInToken(t *testing.T) { expectEqual(t, len(identity.Groups), 1) expectEqual(t, identity.Groups[0], "test-group") - expectEqual(t, identity.Name, "test-name") + expectEqual(t, identity.PreferredUsername, "test-name") expectEqual(t, identity.UserID, "test-user-id") expectEqual(t, identity.Username, "test-username") expectEqual(t, identity.Email, "test-email") @@ -132,7 +131,6 @@ func TestHandleCallBackForGroupsInToken(t *testing.T) { } func testSetup(t *testing.T, tokenClaims map[string]interface{}, userInfoClaims map[string]interface{}) *httptest.Server { - key, err := rsa.GenerateKey(rand.Reader, 1024) if err != nil { t.Fatal("Failed to generate rsa key", err)