From 8e2b9b859aaac40ed90f989aa118615fbd9441b5 Mon Sep 17 00:00:00 2001 From: chapeau Date: Sat, 21 Oct 2023 21:36:50 +0200 Subject: [PATCH] feat #31: add mock connector --- polyculeconnect/connector/refuse_all.go | 25 +++++++++++++++++++++++++ polyculeconnect/main.go | 16 ++++++++++++++-- 2 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 polyculeconnect/connector/refuse_all.go diff --git a/polyculeconnect/connector/refuse_all.go b/polyculeconnect/connector/refuse_all.go new file mode 100644 index 0000000..edb862c --- /dev/null +++ b/polyculeconnect/connector/refuse_all.go @@ -0,0 +1,25 @@ +package connector + +import ( + "fmt" + "net/http" + + "github.com/dexidp/dex/connector" + "github.com/dexidp/dex/pkg/log" +) + +type RefuseAllConfig struct{} + +func (c *RefuseAllConfig) Open(id string, logger log.Logger) (connector.Connector, error) { + return &RefuseAllConnector{}, nil +} + +type RefuseAllConnector struct{} + +func (m *RefuseAllConnector) LoginURL(s connector.Scopes, callbackURL, state string) (string, error) { + return "", fmt.Errorf("you shouldn't use this function") +} + +func (m *RefuseAllConnector) HandleCallback(s connector.Scopes, r *http.Request) (identity connector.Identity, err error) { + return connector.Identity{}, fmt.Errorf("you shouldn't use this function") +} diff --git a/polyculeconnect/main.go b/polyculeconnect/main.go index 58845ed..20953ad 100644 --- a/polyculeconnect/main.go +++ b/polyculeconnect/main.go @@ -9,6 +9,7 @@ import ( "time" "git.faercol.me/faercol/polyculeconnect/polyculeconnect/config" + "git.faercol.me/faercol/polyculeconnect/polyculeconnect/connector" "git.faercol.me/faercol/polyculeconnect/polyculeconnect/logger" "git.faercol.me/faercol/polyculeconnect/polyculeconnect/server" dex_server "github.com/dexidp/dex/server" @@ -61,10 +62,21 @@ func main() { } logger.L.Info("Initializing authentication backends") + + dex_server.ConnectorsConfig["refuseAll"] = func() dex_server.ConnectorConfig { return new(connector.RefuseAllConfig) } + if err := dexConf.Storage.CreateConnector(storage.Connector{ + ID: "null", + Name: "RefuseAll", + Type: "refuseAll", + Config: nil, + }); err != nil { + logger.L.Errorf("Failed to add connector for backend RefuseAll to stage: %s", err.Error()) + } + for _, backend := range conf.OpenConnectConfig.BackendConfigs { backendConfJson, err := json.Marshal(backend.Config) if err != nil { - logger.L.Errorf("Failed to serialize oidc config for backend %q: %s", backend.Name, err) + logger.L.Errorf("Failed to serialize oidc config for backend %q: %s", backend.Name, err.Error()) continue } if err := dexConf.Storage.CreateConnector(storage.Connector{ @@ -73,7 +85,7 @@ func main() { Type: backend.Type, Config: backendConfJson, }); err != nil { - logger.L.Errorf("Failed to add connector for backend %q to stage: %s", backend.Name, err) + logger.L.Errorf("Failed to add connector for backend %q to stage: %s", backend.Name, err.Error()) continue } }