package cli import ( "git.morlana.online/f.weber/vault-tui/internal/auth" "git.morlana.online/f.weber/vault-tui/internal/auth/oidc" ) // init registers a default-configured OIDC method so it appears in // auth.Default() for listing/help purposes. app.Method special-cases // "oidc" to build a fresh oidc.Method from the profile's actual settings // (see oidcMethod below) instead of using this registered instance, because // OIDC's port/callback/timeout are meaningfully per-profile. func init() { auth.Register(oidc.Method{}) } func (a *App) oidcMethod() auth.Method { o := a.Settings.Auth.OIDC cfg := oidc.Config{ Mount: a.Settings.Auth.Mount, Role: a.Settings.Auth.Params["role"], ListenAddress: o.ListenAddress, CallbackMethod: o.CallbackMethod, CallbackHost: o.CallbackHost, CallbackPath: o.CallbackPath, BrowserCommand: a.Settings.BrowserCommand, } if o.Port != nil { cfg.Port = *o.Port } if o.CallbackPort != nil { cfg.CallbackPort = *o.CallbackPort } if o.SkipBrowser != nil { cfg.SkipBrowser = *o.SkipBrowser } if o.AbortOnBrowserError != nil { cfg.AbortOnBrowserError = *o.AbortOnBrowserError } if o.Timeout != nil { cfg.Timeout = *o.Timeout } if cfg.Mount == "" { cfg.Mount = "oidc" } return oidc.Method{Cfg: cfg} }