@@ -24,10 +24,12 @@ import (
2424type KubernetesApiTokenVerifier interface {
2525 // KubernetesApiVerifyToken TODO: clarify proper implementation
2626 KubernetesApiVerifyToken (ctx context.Context , token , audience , cluster string ) (* authenticationapiv1.UserInfo , []string , error )
27+ // GetTargetParameterName returns the parameter name used for target identification in MCP requests
28+ GetTargetParameterName () string
2729}
2830
29- // extractClusterFromRequest extracts cluster parameter from MCP request body
30- func extractClusterFromRequest (r * http.Request ) (string , error ) {
31+ // extractTargetFromRequest extracts cluster parameter from MCP request body
32+ func extractTargetFromRequest (r * http.Request , targetName string ) (string , error ) {
3133 if r .Body == nil {
3234 return "" , nil
3335 }
@@ -53,8 +55,8 @@ func extractClusterFromRequest(r *http.Request) (string, error) {
5355 return "" , nil
5456 }
5557
56- // Extract cluster parameter
57- if cluster , ok := mcpRequest .Params .Arguments ["cluster" ].(string ); ok {
58+ // Extract target parameter
59+ if cluster , ok := mcpRequest .Params .Arguments [targetName ].(string ); ok {
5860 return cluster , nil
5961 }
6062
@@ -166,7 +168,8 @@ func AuthorizationMiddleware(staticConfig *config.StaticConfig, oidcProvider *oi
166168 }
167169 // Kubernetes API Server TokenReview validation
168170 if err == nil && staticConfig .ValidateToken {
169- cluster , clusterErr := extractClusterFromRequest (r )
171+ targetParameterName := verifier .GetTargetParameterName ()
172+ cluster , clusterErr := extractTargetFromRequest (r , targetParameterName )
170173 if clusterErr != nil {
171174 klog .V (2 ).Infof ("Failed to extract cluster from request, using default: %v" , clusterErr )
172175 }
0 commit comments