2
									
								
								.github/workflows/ci.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/ci.yaml
									
									
									
									
										vendored
									
									
								
							| @@ -64,7 +64,7 @@ jobs: | ||||
|       - name: Set up Go | ||||
|         uses: actions/setup-go@v3 | ||||
|         with: | ||||
|           go-version: 1.17 | ||||
|           go-version: 1.18 | ||||
|  | ||||
|       - name: Checkout code | ||||
|         uses: actions/checkout@v3 | ||||
|   | ||||
| @@ -45,13 +45,15 @@ linters: | ||||
|         - structcheck | ||||
|         - stylecheck | ||||
|         - tparallel | ||||
|         - typecheck | ||||
|         - unconvert | ||||
|         - unparam | ||||
|         - unused | ||||
|         - varcheck | ||||
|         - whitespace | ||||
|  | ||||
|         # Disable temporarily until everything works with Go 1.18 | ||||
|         # - typecheck | ||||
|  | ||||
|         # TODO: fix linter errors before enabling | ||||
|         # - exhaustivestruct | ||||
|         # - gochecknoglobals | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| ARG BASE_IMAGE=alpine | ||||
|  | ||||
| FROM golang:1.17.8-alpine3.14 AS builder | ||||
| FROM golang:1.18.0-alpine3.15 AS builder | ||||
|  | ||||
| WORKDIR /usr/local/src/dex | ||||
|  | ||||
|   | ||||
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							| @@ -117,7 +117,7 @@ proto-internal: | ||||
| 	@protoc --go_out=paths=source_relative:. server/internal/*.proto | ||||
|  | ||||
| # Dependency versions | ||||
| GOLANGCI_VERSION = 1.42.0 | ||||
| GOLANGCI_VERSION = 1.46.0 | ||||
| GOTESTSUM_VERSION ?= 1.7.0 | ||||
| PROTOC_VERSION = 3.15.6 | ||||
| PROTOC_GEN_GO_VERSION = 1.26.0 | ||||
|   | ||||
| @@ -168,7 +168,8 @@ func (p *conn) Login(ctx context.Context, scopes connector.Scopes, username, pas | ||||
| func (p *conn) Prompt() string { return "username" } | ||||
|  | ||||
| func (p *conn) Refresh( | ||||
| 	ctx context.Context, scopes connector.Scopes, identity connector.Identity) (connector.Identity, error) { | ||||
| 	ctx context.Context, scopes connector.Scopes, identity connector.Identity, | ||||
| ) (connector.Identity, error) { | ||||
| 	token, err := p.getAdminToken(ctx) | ||||
| 	if err != nil { | ||||
| 		return identity, fmt.Errorf("keystone: failed to obtain admin token: %v", err) | ||||
|   | ||||
| @@ -4,7 +4,6 @@ import ( | ||||
| 	"bytes" | ||||
| 	"context" | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 	"io" | ||||
| 	"net/http" | ||||
| 	"os" | ||||
| @@ -454,22 +453,22 @@ func setupVariables(t *testing.T) { | ||||
| 	keystoneAdminPassEnv := "DEX_KEYSTONE_ADMIN_PASS" | ||||
| 	keystoneURL = os.Getenv(keystoneURLEnv) | ||||
| 	if keystoneURL == "" { | ||||
| 		t.Skip(fmt.Sprintf("variable %q not set, skipping keystone connector tests\n", keystoneURLEnv)) | ||||
| 		t.Skipf("variable %q not set, skipping keystone connector tests\n", keystoneURLEnv) | ||||
| 		return | ||||
| 	} | ||||
| 	keystoneAdminURL = os.Getenv(keystoneAdminURLEnv) | ||||
| 	if keystoneAdminURL == "" { | ||||
| 		t.Skip(fmt.Sprintf("variable %q not set, skipping keystone connector tests\n", keystoneAdminURLEnv)) | ||||
| 		t.Skipf("variable %q not set, skipping keystone connector tests\n", keystoneAdminURLEnv) | ||||
| 		return | ||||
| 	} | ||||
| 	adminUser = os.Getenv(keystoneAdminUserEnv) | ||||
| 	if adminUser == "" { | ||||
| 		t.Skip(fmt.Sprintf("variable %q not set, skipping keystone connector tests\n", keystoneAdminUserEnv)) | ||||
| 		t.Skipf("variable %q not set, skipping keystone connector tests\n", keystoneAdminUserEnv) | ||||
| 		return | ||||
| 	} | ||||
| 	adminPass = os.Getenv(keystoneAdminPassEnv) | ||||
| 	if adminPass == "" { | ||||
| 		t.Skip(fmt.Sprintf("variable %q not set, skipping keystone connector tests\n", keystoneAdminPassEnv)) | ||||
| 		t.Skipf("variable %q not set, skipping keystone connector tests\n", keystoneAdminPassEnv) | ||||
| 		return | ||||
| 	} | ||||
| 	authTokenURL = keystoneURL + "/v3/auth/tokens/" | ||||
|   | ||||
| @@ -220,7 +220,8 @@ func (c *Config) OpenConnector(logger log.Logger) (interface { | ||||
| 	connector.Connector | ||||
| 	connector.PasswordConnector | ||||
| 	connector.RefreshConnector | ||||
| }, error) { | ||||
| }, error, | ||||
| ) { | ||||
| 	return c.openConnector(logger) | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -78,7 +78,8 @@ func (c *Config) Open(id string, logger log.Logger) (conn connector.Connector, e | ||||
| // OpenWithHTTPClient returns a connector which can be used to login users through an upstream | ||||
| // OpenShift OAuth2 provider. It provides the ability to inject a http.Client. | ||||
| func (c *Config) OpenWithHTTPClient(id string, logger log.Logger, | ||||
| 	httpClient *http.Client) (conn connector.Connector, err error) { | ||||
| 	httpClient *http.Client, | ||||
| ) (conn connector.Connector, err error) { | ||||
| 	ctx, cancel := context.WithCancel(context.Background()) | ||||
|  | ||||
| 	wellKnownURL := strings.TrimSuffix(c.Issuer, "/") + wellKnownURLPath | ||||
| @@ -156,7 +157,8 @@ func (e *oauth2Error) Error() string { | ||||
|  | ||||
| // HandleCallback parses the request and returns the user's identity | ||||
| func (c *openshiftConnector) HandleCallback(s connector.Scopes, | ||||
| 	r *http.Request) (identity connector.Identity, err error) { | ||||
| 	r *http.Request, | ||||
| ) (identity connector.Identity, err error) { | ||||
| 	q := r.URL.Query() | ||||
| 	if errType := q.Get("error"); errType != "" { | ||||
| 		return identity, &oauth2Error{errType, q.Get("error_description")} | ||||
| @@ -176,7 +178,8 @@ func (c *openshiftConnector) HandleCallback(s connector.Scopes, | ||||
| } | ||||
|  | ||||
| func (c *openshiftConnector) Refresh(ctx context.Context, s connector.Scopes, | ||||
| 	oldID connector.Identity) (connector.Identity, error) { | ||||
| 	oldID connector.Identity, | ||||
| ) (connector.Identity, error) { | ||||
| 	var token oauth2.Token | ||||
| 	err := json.Unmarshal(oldID.ConnectorData, &token) | ||||
| 	if err != nil { | ||||
| @@ -189,7 +192,8 @@ func (c *openshiftConnector) Refresh(ctx context.Context, s connector.Scopes, | ||||
| } | ||||
|  | ||||
| func (c *openshiftConnector) identity(ctx context.Context, s connector.Scopes, | ||||
| 	token *oauth2.Token) (identity connector.Identity, err error) { | ||||
| 	token *oauth2.Token, | ||||
| ) (identity connector.Identity, err error) { | ||||
| 	client := c.oauth2Config.Client(ctx, token) | ||||
| 	user, err := c.user(ctx, client) | ||||
| 	if err != nil { | ||||
|   | ||||
							
								
								
									
										12
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							| @@ -2,11 +2,11 @@ | ||||
|   "nodes": { | ||||
|     "flake-utils": { | ||||
|       "locked": { | ||||
|         "lastModified": 1634851050, | ||||
|         "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", | ||||
|         "lastModified": 1648297722, | ||||
|         "narHash": "sha256-W+qlPsiZd8F3XkzXOzAoR+mpFqzm3ekQkJNa+PIh1BQ=", | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", | ||||
|         "rev": "0f8662f1319ad6abf89b3380dd2722369fc51ade", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @@ -17,11 +17,11 @@ | ||||
|     }, | ||||
|     "nixpkgs": { | ||||
|       "locked": { | ||||
|         "lastModified": 1636800699, | ||||
|         "narHash": "sha256-SwbyVxXffu3G2ulJIbTf0iQfqhbGbdml4Dyv5j9BiAI=", | ||||
|         "lastModified": 1649225869, | ||||
|         "narHash": "sha256-u1zLtPmQzhT9mNXyM8Ey9pk7orDrIKdwooeGDEXm5xM=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "2fa862644fc15ecb525eb8cd0a60276f1c340c7c", | ||||
|         "rev": "b6966d911da89e5a7301aaef8b4f0a44c77e103c", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|   | ||||
| @@ -10,7 +10,7 @@ | ||||
|     flake-utils.lib.eachDefaultSystem (system: | ||||
|       let | ||||
|         pkgs = nixpkgs.legacyPackages.${system}; | ||||
|         buildDeps = with pkgs; [ git go_1_17 gnumake ]; | ||||
|         buildDeps = with pkgs; [ git go_1_18 gnumake ]; | ||||
|         devDeps = with pkgs; | ||||
|           buildDeps ++ [ | ||||
|             golangci-lint | ||||
|   | ||||
							
								
								
									
										2
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | ||||
| module github.com/dexidp/dex | ||||
|  | ||||
| go 1.17 | ||||
| go 1.18 | ||||
|  | ||||
| require ( | ||||
| 	entgo.io/ent v0.10.1 | ||||
|   | ||||
| @@ -11,7 +11,6 @@ type keyPair struct { | ||||
|  | ||||
| // keys are generated beforehand so we don't have to generate RSA keys for every test. | ||||
| var jsonWebKeys = []keyPair{ | ||||
|  | ||||
| 	{ | ||||
| 		Public: mustLoadJWK(`{ | ||||
| 			"use": "sig", | ||||
|   | ||||
| @@ -14,10 +14,7 @@ import ( | ||||
|  | ||||
| 	entSQL "entgo.io/ent/dialect/sql" | ||||
| 	"entgo.io/ent/dialect/sql/schema" | ||||
| 	"github.com/go-sql-driver/mysql" | ||||
|  | ||||
| 	// Register postgres driver. | ||||
| 	_ "github.com/lib/pq" | ||||
| 	"github.com/go-sql-driver/mysql" // Register mysql driver. | ||||
|  | ||||
| 	"github.com/dexidp/dex/pkg/log" | ||||
| 	"github.com/dexidp/dex/storage" | ||||
|   | ||||
| @@ -13,9 +13,7 @@ import ( | ||||
|  | ||||
| 	entSQL "entgo.io/ent/dialect/sql" | ||||
| 	"entgo.io/ent/dialect/sql/schema" | ||||
|  | ||||
| 	// Register postgres driver. | ||||
| 	_ "github.com/lib/pq" | ||||
| 	_ "github.com/lib/pq" // Register postgres driver. | ||||
|  | ||||
| 	"github.com/dexidp/dex/pkg/log" | ||||
| 	"github.com/dexidp/dex/storage" | ||||
|   | ||||
| @@ -7,9 +7,7 @@ import ( | ||||
|  | ||||
| 	"entgo.io/ent/dialect/sql" | ||||
| 	"entgo.io/ent/dialect/sql/schema" | ||||
|  | ||||
| 	// Register sqlite driver. | ||||
| 	_ "github.com/mattn/go-sqlite3" | ||||
| 	_ "github.com/mattn/go-sqlite3" // Register sqlite driver. | ||||
|  | ||||
| 	"github.com/dexidp/dex/pkg/log" | ||||
| 	"github.com/dexidp/dex/storage" | ||||
|   | ||||
| @@ -24,7 +24,7 @@ const kubeconfigPathVariableName = "DEX_KUBERNETES_CONFIG_PATH" | ||||
|  | ||||
| func TestStorage(t *testing.T) { | ||||
| 	if os.Getenv(kubeconfigPathVariableName) == "" { | ||||
| 		t.Skip(fmt.Sprintf("variable %q not set, skipping kubernetes storage tests\n", kubeconfigPathVariableName)) | ||||
| 		t.Skipf("variable %q not set, skipping kubernetes storage tests\n", kubeconfigPathVariableName) | ||||
| 	} | ||||
|  | ||||
| 	suite.Run(t, new(StorageTestSuite)) | ||||
|   | ||||
| @@ -1,3 +1,4 @@ | ||||
| //go:build cgo | ||||
| // +build cgo | ||||
|  | ||||
| package sql | ||||
|   | ||||
| @@ -1,3 +1,4 @@ | ||||
| //go:build cgo | ||||
| // +build cgo | ||||
|  | ||||
| package sql | ||||
|   | ||||
| @@ -1,3 +1,4 @@ | ||||
| //go:build go1.11 | ||||
| // +build go1.11 | ||||
|  | ||||
| package sql | ||||
|   | ||||
| @@ -1,3 +1,4 @@ | ||||
| //go:build cgo | ||||
| // +build cgo | ||||
|  | ||||
| package sql | ||||
|   | ||||
| @@ -1,3 +1,4 @@ | ||||
| //go:build cgo | ||||
| // +build cgo | ||||
|  | ||||
| package sql | ||||
|   | ||||
		Reference in New Issue
	
	Block a user