Skip to content

Commit

Permalink
add tests for access limited
Browse files Browse the repository at this point in the history
  • Loading branch information
navidnabavi committed Jan 7, 2024
1 parent 6aa155c commit df72d98
Showing 1 changed file with 55 additions and 0 deletions.
55 changes: 55 additions & 0 deletions pkg/auth/authenticator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -436,6 +436,61 @@ func TestTestAccessBadIPList(t *testing.T) {
assert.Empty(t, extraHeaders, "Expected no extra headers for invalid IP")
}

func TestTestAccessLimited(t *testing.T) {
authenticator := &Authenticator{
accessCache: &AccessCache{},
servicesCache: &ServicesCache{},
}

tokenEntry := AccessCacheEntry{
AccessToken: cerberusv1alpha1.AccessToken{
ObjectMeta: metav1.ObjectMeta{
Name: "valid-token",
},
Spec: cerberusv1alpha1.AccessTokenSpec{
Priority: 50,
},
},
allowedServices: map[string]struct{}{
"SampleWebService": {},
},
}
(*authenticator.accessCache)["valid-token"] = tokenEntry

// Assuming an IP not in the allow list
headers := http.Header{}
headers.Set("X-Cerberus-Token", "valid-token")

request := &Request{
Context: map[string]string{
"webservice": "SampleWebService",
},
Request: http.Request{
Header: headers,
},
}

webservice := ServicesCacheEntry{
cerberusv1alpha1.WebService{
ObjectMeta: metav1.ObjectMeta{
Name: "SampleWebService",
},
Spec: cerberusv1alpha1.WebServiceSpec{
LookupHeader: "X-Cerberus-Token",
MinimumTokenPriority: 100,
},
},
}

(*authenticator.servicesCache)["SampleWebService"] = webservice

ok, reason, extraHeaders := authenticator.TestAccess(request, webservice)

assert.False(t, ok, "Expected access to be denied")
assert.Equal(t, CerberusReasonAccessLimited, reason, "Expected reason to be AccessLimited")
assert.Empty(t, extraHeaders, "Expected no extra headers for AccessLimited")
}

func setupTestEnvironment(t *testing.T) (client.Client, *Authenticator) {
// Initialize a Kubernetes client's scheme.
scheme := runtime.NewScheme()
Expand Down

0 comments on commit df72d98

Please sign in to comment.