diff --git a/internal/provider/oidc.go b/internal/auth/oidc.go similarity index 99% rename from internal/provider/oidc.go rename to internal/auth/oidc.go index ab4070f..c8bc296 100644 --- a/internal/provider/oidc.go +++ b/internal/auth/oidc.go @@ -1,4 +1,4 @@ -package provider +package auth import ( "context" diff --git a/internal/provider/providers.go b/internal/auth/provider.go similarity index 79% rename from internal/provider/providers.go rename to internal/auth/provider.go index bb6ecbe..03c5835 100644 --- a/internal/provider/providers.go +++ b/internal/auth/provider.go @@ -1,6 +1,6 @@ -package provider +package auth -type AuthProvider interface { +type Provider interface { GetLoginURL(redirectURI, state string) string Exchange(redirectURI, code string) (*User, error) } diff --git a/internal/handlers/authentication.go b/internal/handlers/authentication.go index b45fce3..bfc3304 100644 --- a/internal/handlers/authentication.go +++ b/internal/handlers/authentication.go @@ -4,7 +4,7 @@ import ( "context" "encoding/json" "github.com/jsiebens/ionscale/internal/addr" - "github.com/jsiebens/ionscale/internal/provider" + "github.com/jsiebens/ionscale/internal/auth" "github.com/labstack/echo/v4/middleware" "github.com/mr-tron/base58" "net/http" @@ -20,7 +20,7 @@ import ( func NewAuthenticationHandlers( config *config.Config, - authProvider provider.AuthProvider, + authProvider auth.Provider, systemIAMPolicy *domain.IAMPolicy, repository domain.Repository) *AuthenticationHandlers { @@ -34,7 +34,7 @@ func NewAuthenticationHandlers( type AuthenticationHandlers struct { repository domain.Repository - authProvider provider.AuthProvider + authProvider auth.Provider config *config.Config systemIAMPolicy *domain.IAMPolicy } @@ -233,11 +233,11 @@ func (h *AuthenticationHandlers) Callback(c echo.Context) error { return c.Redirect(http.StatusFound, "/a/error") } -func (h *AuthenticationHandlers) isSystemAdmin(ctx context.Context, u *provider.User) (bool, error) { +func (h *AuthenticationHandlers) isSystemAdmin(ctx context.Context, u *auth.User) (bool, error) { return h.systemIAMPolicy.EvaluatePolicy(&domain.Identity{UserID: u.ID, Email: u.Name, Attr: u.Attr}) } -func (h *AuthenticationHandlers) listAvailableTailnets(ctx context.Context, u *provider.User) ([]domain.Tailnet, error) { +func (h *AuthenticationHandlers) listAvailableTailnets(ctx context.Context, u *auth.User) ([]domain.Tailnet, error) { var result = []domain.Tailnet{} tailnets, err := h.repository.ListTailnets(ctx) if err != nil { @@ -534,7 +534,7 @@ func (h *AuthenticationHandlers) endMachineRegistrationFlow(c echo.Context, regi return c.Redirect(http.StatusFound, "/a/success") } -func (h *AuthenticationHandlers) exchangeUser(code string) (*provider.User, error) { +func (h *AuthenticationHandlers) exchangeUser(code string) (*auth.User, error) { redirectUrl := h.config.CreateUrl("/a/callback") user, err := h.authProvider.Exchange(redirectUrl, code) diff --git a/internal/server/server.go b/internal/server/server.go index c8140f8..3778184 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -6,13 +6,13 @@ import ( "fmt" "github.com/caddyserver/certmagic" "github.com/hashicorp/go-hclog" + "github.com/jsiebens/ionscale/internal/auth" "github.com/jsiebens/ionscale/internal/bind" "github.com/jsiebens/ionscale/internal/config" "github.com/jsiebens/ionscale/internal/database" "github.com/jsiebens/ionscale/internal/dns" "github.com/jsiebens/ionscale/internal/domain" "github.com/jsiebens/ionscale/internal/handlers" - "github.com/jsiebens/ionscale/internal/provider" "github.com/jsiebens/ionscale/internal/service" "github.com/jsiebens/ionscale/internal/templates" echo_prometheus "github.com/labstack/echo-contrib/prometheus" @@ -210,12 +210,12 @@ func Start(c *config.Config) error { return g.Wait() } -func setupAuthProvider(config config.Auth) (provider.AuthProvider, *domain.IAMPolicy, error) { +func setupAuthProvider(config config.Auth) (auth.Provider, *domain.IAMPolicy, error) { if len(config.Provider.Issuer) == 0 { return nil, &domain.IAMPolicy{}, nil } - authProvider, err := provider.NewOIDCProvider(&config.Provider) + authProvider, err := auth.NewOIDCProvider(&config.Provider) if err != nil { return nil, nil, err } diff --git a/internal/service/service.go b/internal/service/service.go index 9fcd48e..f49b12f 100644 --- a/internal/service/service.go +++ b/internal/service/service.go @@ -3,15 +3,15 @@ package service import ( "context" "github.com/bufbuild/connect-go" + "github.com/jsiebens/ionscale/internal/auth" "github.com/jsiebens/ionscale/internal/broker" "github.com/jsiebens/ionscale/internal/config" "github.com/jsiebens/ionscale/internal/domain" - "github.com/jsiebens/ionscale/internal/provider" "github.com/jsiebens/ionscale/internal/version" api "github.com/jsiebens/ionscale/pkg/gen/ionscale/v1" ) -func NewService(config *config.Config, authProvider provider.AuthProvider, repository domain.Repository, pubsub broker.Pubsub) *Service { +func NewService(config *config.Config, authProvider auth.Provider, repository domain.Repository, pubsub broker.Pubsub) *Service { return &Service{ config: config, authProvider: authProvider, @@ -22,7 +22,7 @@ func NewService(config *config.Config, authProvider provider.AuthProvider, repos type Service struct { config *config.Config - authProvider provider.AuthProvider + authProvider auth.Provider repository domain.Repository pubsub broker.Pubsub }