From 11c53ac86996f3efacab3653e1503f6d84c74234 Mon Sep 17 00:00:00 2001 From: Andrey Rusakov Date: Thu, 10 Oct 2024 12:02:21 +0200 Subject: [PATCH] Use configurable issuer for test servers --- example/server/config/config.go | 5 +++++ example/server/config/config_test.go | 5 +++++ example/server/main.go | 11 ++++------- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/example/server/config/config.go b/example/server/config/config.go index 3925dd4b..121eb75e 100644 --- a/example/server/config/config.go +++ b/example/server/config/config.go @@ -14,6 +14,7 @@ type Config struct { Port string RedirectURIs []string UsersFile string + Issuer string } // FromEnvVars loads configuration parameters from environment variables. @@ -26,6 +27,7 @@ func FromEnvVars(defaults *Config) *Config { Port: defaults.Port, RedirectURIs: defaults.RedirectURIs, UsersFile: defaults.UsersFile, + Issuer: defaults.Issuer, } if value, ok := os.LookupEnv("PORT"); ok { cfg.Port = value @@ -36,5 +38,8 @@ func FromEnvVars(defaults *Config) *Config { if value, ok := os.LookupEnv("REDIRECT_URIS"); ok { cfg.RedirectURIs = strings.Split(value, ",") } + if value, ok := os.LookupEnv("ISSUER"); ok { + cfg.Issuer = value + } return cfg } diff --git a/example/server/config/config_test.go b/example/server/config/config_test.go index 0cbd692b..b8e4acfe 100644 --- a/example/server/config/config_test.go +++ b/example/server/config/config_test.go @@ -26,11 +26,13 @@ func TestFromEnvVars(t *testing.T) { Port: "6666", UsersFile: "/default/user/path", RedirectURIs: []string{"re", "direct", "uris"}, + Issuer: "123", }, want: &Config{ Port: "6666", UsersFile: "/default/user/path", RedirectURIs: []string{"re", "direct", "uris"}, + Issuer: "123", }, }, { @@ -39,16 +41,19 @@ func TestFromEnvVars(t *testing.T) { "PORT": "1234", "USERS_FILE": "/path/to/users", "REDIRECT_URIS": "http://redirect/redirect", + "ISSUER": "someissuer", }, defaults: &Config{ Port: "6666", UsersFile: "/default/user/path", RedirectURIs: []string{"re", "direct", "uris"}, + Issuer: "someissuer", }, want: &Config{ Port: "1234", UsersFile: "/path/to/users", RedirectURIs: []string{"http://redirect/redirect"}, + Issuer: "someissuer", }, }, { diff --git a/example/server/main.go b/example/server/main.go index ec79939d..430a5dd9 100644 --- a/example/server/main.go +++ b/example/server/main.go @@ -13,13 +13,13 @@ import ( func getUserStore(cfg *config.Config) (storage.UserStore, error) { if cfg.UsersFile == "" { - return storage.NewUserStore(fmt.Sprintf("http://localhost:%s/", cfg.Port)), nil + return storage.NewUserStore(fmt.Sprintf("http://zitadel:%s/", cfg.Port)), nil } return storage.StoreFromFile(cfg.UsersFile) } func main() { - cfg := config.FromEnvVars(&config.Config{Port: "9998"}) + cfg := config.FromEnvVars(&config.Config{Port: "9998", Issuer: "http://localhost:9998"}) logger := slog.New( slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{ AddSource: true, @@ -27,9 +27,6 @@ func main() { }), ) - //which gives us the issuer: http://localhost:9998/ - issuer := fmt.Sprintf("http://localhost:%s/", cfg.Port) - storage.RegisterClients( storage.NativeClient("native", cfg.RedirectURIs...), storage.WebClient("web", "secret"), @@ -45,13 +42,13 @@ func main() { os.Exit(1) } storage := storage.NewStorage(store) - router := exampleop.SetupServer(issuer, storage, logger, false) + router := exampleop.SetupServer(cfg.Issuer, storage, logger, false) server := &http.Server{ Addr: ":" + cfg.Port, Handler: router, } - logger.Info("server listening, press ctrl+c to stop", "addr", issuer) + logger.Info("server listening, press ctrl+c to stop", "addr", cfg.Issuer) if server.ListenAndServe() != http.ErrServerClosed { logger.Error("server terminated", "error", err) os.Exit(1)