Skip to content
This repository has been archived by the owner on Dec 27, 2024. It is now read-only.

v2/acl: add Service filter type #338

Merged
merged 1 commit into from
Sep 28, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions pkg/acl/eacl/enums.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,9 @@ const (

// HeaderFromObject is a FilterHeaderType for object header.
HeaderFromObject

// HeaderFromService is a FilterHeaderType for service header.
HeaderFromService
)

// ToV2 converts Action to v2 Action enum value.
Expand Down Expand Up @@ -343,6 +346,8 @@ func (h FilterHeaderType) ToV2() v2acl.HeaderType {
return v2acl.HeaderTypeRequest
case HeaderFromObject:
return v2acl.HeaderTypeObject
case HeaderFromService:
return v2acl.HeaderTypeService
default:
return v2acl.HeaderTypeUnknown
}
Expand All @@ -355,6 +360,8 @@ func FilterHeaderTypeFromV2(header v2acl.HeaderType) (h FilterHeaderType) {
h = HeaderFromRequest
case v2acl.HeaderTypeObject:
h = HeaderFromObject
case v2acl.HeaderTypeService:
h = HeaderFromService
default:
h = HeaderTypeUnknown
}
Expand Down
7 changes: 4 additions & 3 deletions pkg/acl/eacl/enums_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ var (
eacl.HeaderTypeUnknown: v2acl.HeaderTypeUnknown,
eacl.HeaderFromRequest: v2acl.HeaderTypeRequest,
eacl.HeaderFromObject: v2acl.HeaderTypeObject,
eacl.HeaderFromService: v2acl.HeaderTypeService,
}
)

Expand Down Expand Up @@ -104,15 +105,15 @@ func TestMatch(t *testing.T) {

func TestFilterHeaderType(t *testing.T) {
t.Run("known header types", func(t *testing.T) {
for i := eacl.HeaderTypeUnknown; i <= eacl.HeaderFromObject; i++ {
for i := eacl.HeaderTypeUnknown; i <= eacl.HeaderFromService; i++ {
require.Equal(t, eqV2HeaderTypes[i], i.ToV2())
require.Equal(t, eacl.FilterHeaderTypeFromV2(i.ToV2()), i)
}
})

t.Run("unknown header types", func(t *testing.T) {
require.Equal(t, (eacl.HeaderFromObject + 1).ToV2(), v2acl.HeaderTypeUnknown)
require.Equal(t, eacl.FilterHeaderTypeFromV2(v2acl.HeaderTypeObject+1), eacl.HeaderTypeUnknown)
require.Equal(t, (eacl.HeaderFromService + 1).ToV2(), v2acl.HeaderTypeUnknown)
require.Equal(t, eacl.FilterHeaderTypeFromV2(v2acl.HeaderTypeService+1), eacl.HeaderTypeUnknown)
})
}

Expand Down
4 changes: 4 additions & 0 deletions v2/acl/convert.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,8 @@ func HeaderTypeToGRPCField(t HeaderType) acl.HeaderType {
return acl.HeaderType_REQUEST
case HeaderTypeObject:
return acl.HeaderType_OBJECT
case HeaderTypeService:
return acl.HeaderType_SERVICE
default:
return acl.HeaderType_HEADER_UNSPECIFIED
}
Expand All @@ -123,6 +125,8 @@ func HeaderTypeFromGRPCField(t acl.HeaderType) HeaderType {
return HeaderTypeRequest
case acl.HeaderType_OBJECT:
return HeaderTypeObject
case acl.HeaderType_SERVICE:
return HeaderTypeService
default:
return HeaderTypeUnknown
}
Expand Down
Loading