mirror of https://github.com/vernonkeenan/lib
28 lines
826 B
Go
28 lines
826 B
Go
package app
|
|
|
|
import "testing"
|
|
|
|
func TestNativeServicePrincipalScope(t *testing.T) {
|
|
principal := &User{
|
|
PrincipalType: "service",
|
|
PrincipalKey: "cache",
|
|
Scopes: []string{"auth:introspect", "crm:account-contact:load"},
|
|
}
|
|
if !principal.IsServicePrincipal("cache") {
|
|
t.Fatal("expected stable service-principal match")
|
|
}
|
|
if !principal.HasScope("crm:account-contact:load") {
|
|
t.Fatal("expected exact scope grant")
|
|
}
|
|
if principal.HasScope("crm:account:write") {
|
|
t.Fatal("unexpected scope grant")
|
|
}
|
|
}
|
|
|
|
func TestLegacyUserCannotClaimServiceScope(t *testing.T) {
|
|
legacy := &User{APIKey: "legacy", Scopes: []string{"crm:account-contact:load"}}
|
|
if legacy.IsServicePrincipal("cache") || legacy.HasScope("crm:account-contact:load") {
|
|
t.Fatal("legacy user must not satisfy native service authorization")
|
|
}
|
|
}
|