mirror of
https://github.com/netbirdio/netbird.git
synced 2026-08-04 19:55:09 -04:00
42 lines
1.0 KiB
Go
42 lines
1.0 KiB
Go
package ipcauth
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"google.golang.org/grpc/metadata"
|
|
)
|
|
|
|
func TestForwardIdentityRoundTrip(t *testing.T) {
|
|
cases := []struct {
|
|
name string
|
|
id Identity
|
|
}{
|
|
{"unix uid/gid", Identity{UID: 1000, GID: 1000}},
|
|
{"windows sid+groups+elevated", Identity{
|
|
SID: "S-1-5-21-1-2-3-1001",
|
|
Groups: []string{"S-1-5-32-544", "S-1-1-0"},
|
|
Elevated: true,
|
|
}},
|
|
{"windows sid only", Identity{SID: "S-1-5-21-9"}},
|
|
}
|
|
for _, tc := range cases {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
ctx := metadata.NewIncomingContext(context.Background(), ForwardIdentityMetadata(tc.id))
|
|
got, ok := forwardedIdentity(ctx)
|
|
assert.True(t, ok)
|
|
assert.Equal(t, tc.id, got)
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestForwardedIdentity_None(t *testing.T) {
|
|
_, ok := forwardedIdentity(context.Background())
|
|
assert.False(t, ok, "no metadata, no forwarded identity")
|
|
|
|
ctx := metadata.NewIncomingContext(context.Background(), metadata.Pairs("other", "x"))
|
|
_, ok = forwardedIdentity(ctx)
|
|
assert.False(t, ok)
|
|
}
|