mirror of
https://github.com/niusmallnan/steve.git
synced 2025-09-16 15:00:39 +00:00
Add impersonation support
This commit is contained in:
@@ -18,7 +18,8 @@ import (
|
||||
|
||||
func New(cfg *rest.Config, sf schema.Factory, authMiddleware auth.Middleware, next http.Handler, routerFunc router.RouterFunc) (http.Handler, error) {
|
||||
var (
|
||||
err error
|
||||
proxy http.Handler
|
||||
err error
|
||||
)
|
||||
|
||||
a := &apiServer{
|
||||
@@ -27,9 +28,13 @@ func New(cfg *rest.Config, sf schema.Factory, authMiddleware auth.Middleware, ne
|
||||
}
|
||||
a.server.AccessControl = accesscontrol.NewAccessControl()
|
||||
|
||||
proxy, err := k8sproxy.Handler("/", cfg)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
if authMiddleware == nil {
|
||||
proxy, err = k8sproxy.Handler("/", cfg)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
proxy = k8sproxy.ImpersonatingHandler("/", cfg)
|
||||
}
|
||||
|
||||
w := authMiddleware.Wrap
|
||||
|
@@ -51,7 +51,7 @@ func setup(ctx context.Context, server *Server) (http.Handler, *schema.Collectio
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
cf, err := client.NewFactory(server.RestConfig)
|
||||
cf, err := client.NewFactory(server.RestConfig, server.AuthMiddleware != nil)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
Reference in New Issue
Block a user