@@ -34,6 +34,7 @@ import (
3434 "github.com/kube-bind/kube-bind/backend/auth"
3535 "github.com/kube-bind/kube-bind/backend/client"
3636 "github.com/kube-bind/kube-bind/backend/kubernetes"
37+ "github.com/kube-bind/kube-bind/backend/oidc"
3738 "github.com/kube-bind/kube-bind/backend/spaserver"
3839 bindversion "github.com/kube-bind/kube-bind/pkg/version"
3940 kubebindv1alpha2 "github.com/kube-bind/kube-bind/sdk/apis/kubebind/v1alpha2"
@@ -48,8 +49,8 @@ var noCacheHeaders = map[string]string{
4849}
4950
5051type handler struct {
51- oidc * auth.OIDCServiceProvider
52- authHandler * auth.AuthHandler
52+ oidcProvider auth.OIDCProvider
53+ authHandler auth.AuthHandlerInterface
5354 authMiddleware * auth.AuthMiddleware
5455
5556 scope kubebindv1alpha2.InformerScope
@@ -64,12 +65,14 @@ type handler struct {
6465
6566 client * http.Client
6667 kubeManager * kubernetes.Manager
68+ oidcServer * oidc.Server
6769
6870 frontend string
6971}
7072
7173func NewHandler (
72- provider * auth.OIDCServiceProvider ,
74+ oidcProvider auth.OIDCProvider ,
75+ oidcServer * oidc.Server ,
7376 oidcAuthorizeURL , backendCallbackURL , providerPrettyName , testingAutoSelect string ,
7477 cookieSigningKey , cookieEncryptionKey []byte ,
7578 schemaSource string ,
@@ -83,14 +86,14 @@ func NewHandler(
8386 return nil , fmt .Errorf ("failed to create JWT service: %w" , err )
8487 }
8588
86- // Create auth handler for generic authentication flows
87- authHandler := auth .NewAuthHandler (provider , jwtService , cookieSigningKey , cookieEncryptionKey )
89+ // Create auth handler with OIDC provider
90+ authHandler := auth .NewAuthHandler (oidcProvider , jwtService , cookieSigningKey , cookieEncryptionKey )
8891
8992 // Create auth middleware for request authentication
9093 authMiddleware := auth .NewAuthMiddleware (jwtService , cookieSigningKey , cookieEncryptionKey )
9194
9295 return & handler {
93- oidc : provider ,
96+ oidcProvider : oidcProvider ,
9497 authHandler : authHandler ,
9598 authMiddleware : authMiddleware ,
9699 oidcAuthorizeURL : oidcAuthorizeURL ,
@@ -104,6 +107,7 @@ func NewHandler(
104107 kubeManager : mgr ,
105108 cookieSigningKey : cookieSigningKey ,
106109 cookieEncryptionKey : cookieEncryptionKey ,
110+ oidcServer : oidcServer ,
107111 }, nil
108112}
109113
@@ -129,6 +133,10 @@ func (h *handler) AddRoutes(mux *mux.Router) error {
129133 apiRouter .Handle ("/bind" , auth .RequireAuth (http .HandlerFunc (h .handleBind ))).Methods (http .MethodPost )
130134 apiRouter .Handle ("/ping" , auth .RequireAuth (http .HandlerFunc (h .handlePing ))).Methods (http .MethodGet )
131135
136+ if h .oidcServer != nil {
137+ h .oidcServer .AddRoutes (mux )
138+ }
139+
132140 switch {
133141 // Development mode: proxy to frontend dev server
134142 case strings .HasPrefix (h .frontend , "http://" ):
0 commit comments