Skip to content

Commit db0089a

Browse files
committed
updated
1 parent aac1a8c commit db0089a

File tree

3 files changed

+209
-71
lines changed

3 files changed

+209
-71
lines changed

pkg/kubernetes/auth_headers.go

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@ type AuthType string
1111
type ContextKey string
1212

1313
const (
14-
// AuthTypeToken represents token-based authentication.
15-
AuthTypeToken AuthType = "token"
16-
// AuthTypeClientCertificate represents client certificate authentication.
17-
AuthTypeClientCertificate AuthType = "client_certificate"
1814
// AuthHeadersContextKey is the context key for the Kubernetes authentication headers.
1915
AuthHeadersContextKey ContextKey = "k8s_auth_headers"
2016
)
@@ -40,11 +36,12 @@ func GetDecodedData(data string) ([]byte, error) {
4036
return base64.StdEncoding.DecodeString(data)
4137
}
4238

39+
// NewK8sAuthHeadersFromHeaders creates a new K8sAuthHeaders from the provided headers.
4340
func NewK8sAuthHeadersFromHeaders(data map[string]any) (*K8sAuthHeaders, error) {
4441
var ok bool
4542
var err error
4643

47-
// Initialize auth headers.
44+
// Initialize auth headers with default values.
4845
authHeaders := &K8sAuthHeaders{
4946
InsecureSkipTLSVerify: false,
5047
}
@@ -92,21 +89,20 @@ func NewK8sAuthHeadersFromHeaders(data map[string]any) (*K8sAuthHeaders, error)
9289
}
9390

9491
// Check if a valid authentication type is provided.
95-
_, err = authHeaders.GetAuthType()
96-
if err != nil {
92+
if !authHeaders.IsValid() {
9793
return nil, fmt.Errorf("either %s header for token authentication or (%s and %s) headers for client certificate authentication required", CustomAuthorizationHeader, CustomClientCertificateDataHeader, CustomClientKeyDataHeader)
9894
}
9995

10096
return authHeaders, nil
10197
}
10298

103-
// GetAuthType returns the authentication type based on the provided headers.
104-
func (h *K8sAuthHeaders) GetAuthType() (AuthType, error) {
99+
// IsValid checks if the authentication headers are valid.
100+
func (h *K8sAuthHeaders) IsValid() bool {
105101
if h.AuthorizationToken != "" {
106-
return AuthTypeToken, nil
102+
return true
107103
}
108104
if h.ClientCertificateData != nil && h.ClientKeyData != nil {
109-
return AuthTypeClientCertificate, nil
105+
return true
110106
}
111-
return "", fmt.Errorf("invalid authentication type")
107+
return false
112108
}

pkg/kubernetes/provider_auth_headers.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,25 +27,27 @@ func init() {
2727
// newAuthHeadersClusterProvider creates a provider that requires header-based authentication.
2828
// Users must provide tokens via request headers (server URL, Token or client certificate and key).
2929
func newAuthHeadersClusterProvider(cfg *config.StaticConfig) (Provider, error) {
30-
klog.V(1).Infof("Auth-headers provider initialized - all requests must include valid headers")
30+
klog.V(1).Infof("Auth-headers provider initialized - all requests must include valid k8s auth headers")
3131

3232
return &AuthHeadersClusterProvider{staticConfig: cfg}, nil
3333
}
3434

3535
func (p *AuthHeadersClusterProvider) IsOpenShift(ctx context.Context) bool {
36+
klog.V(1).Infof("IsOpenShift not supported for auth-headers provider. Returning false.")
3637
return false
3738
}
3839

3940
func (p *AuthHeadersClusterProvider) VerifyToken(ctx context.Context, target, token, audience string) (*authenticationv1api.UserInfo, []string, error) {
40-
return nil, nil, fmt.Errorf("auth-headers VerifyToken not implemented")
41+
return nil, nil, fmt.Errorf("VerifyToken not supported for auth-headers provider")
4142
}
4243

4344
func (p *AuthHeadersClusterProvider) GetTargets(_ context.Context) ([]string, error) {
44-
// Single cluster mode
45+
klog.V(1).Infof("GetTargets not supported for auth-headers provider. Returning empty list.")
4546
return []string{""}, nil
4647
}
4748

4849
func (p *AuthHeadersClusterProvider) GetTargetParameterName() string {
50+
klog.V(1).Infof("GetTargetParameterName not supported for auth-headers provider. Returning empty name.")
4951
return ""
5052
}
5153

@@ -64,10 +66,12 @@ func (p *AuthHeadersClusterProvider) GetDerivedKubernetes(ctx context.Context, t
6466
}
6567

6668
func (p *AuthHeadersClusterProvider) GetDefaultTarget() string {
69+
klog.V(1).Infof("GetDefaultTarget not supported for auth-headers provider. Returning empty name.")
6770
return ""
6871
}
6972

7073
func (p *AuthHeadersClusterProvider) WatchTargets(watch func() error) {
74+
klog.V(1).Infof("WatchTargets not supported for auth-headers provider. Ignoring watch function.")
7175
}
7276

7377
func (p *AuthHeadersClusterProvider) Close() {

0 commit comments

Comments
 (0)