Identity: Use typed namespace id (#87121)

* Use typed namespace id
This commit is contained in:
Karl Persson
2024-05-02 14:50:56 +02:00
committed by GitHub
parent 4fd2cb6014
commit d8fbbdefea
12 changed files with 35 additions and 43 deletions
+2 -7
View File
@@ -308,18 +308,13 @@ Default:
return redirect, nil
}
func (s *Service) ResolveIdentity(ctx context.Context, orgID int64, namespaceID string) (*authn.Identity, error) {
func (s *Service) ResolveIdentity(ctx context.Context, orgID int64, namespaceID authn.NamespaceID) (*authn.Identity, error) {
r := &authn.Request{}
r.OrgID = orgID
// hack to not update last seen
r.SetMeta(authn.MetaKeyIsLogin, "true")
id, err := authn.ParseNamespaceID(namespaceID)
if err != nil {
return nil, err
}
identity, err := s.resolveIdenity(ctx, orgID, id)
identity, err := s.resolveIdenity(ctx, orgID, namespaceID)
if err != nil {
return nil, err
}
+6 -6
View File
@@ -487,26 +487,26 @@ func TestService_Logout(t *testing.T) {
func TestService_ResolveIdentity(t *testing.T) {
t.Run("should return error for for unknown namespace", func(t *testing.T) {
svc := setupTests(t)
_, err := svc.ResolveIdentity(context.Background(), 1, "some:1")
assert.ErrorIs(t, err, authn.ErrInvalidNamespaceID)
_, err := svc.ResolveIdentity(context.Background(), 1, authn.NewNamespaceIDUnchecked("some", 1))
assert.ErrorIs(t, err, authn.ErrUnsupportedIdentity)
})
t.Run("should return error for for namespace that don't have a resolver", func(t *testing.T) {
svc := setupTests(t)
_, err := svc.ResolveIdentity(context.Background(), 1, "api-key:1")
_, err := svc.ResolveIdentity(context.Background(), 1, authn.MustParseNamespaceID("api-key:1"))
assert.ErrorIs(t, err, authn.ErrUnsupportedIdentity)
})
t.Run("should resolve for user", func(t *testing.T) {
svc := setupTests(t)
identity, err := svc.ResolveIdentity(context.Background(), 1, "user:1")
identity, err := svc.ResolveIdentity(context.Background(), 1, authn.MustParseNamespaceID("user:1"))
assert.NoError(t, err)
assert.NotNil(t, identity)
})
t.Run("should resolve for service account", func(t *testing.T) {
svc := setupTests(t)
identity, err := svc.ResolveIdentity(context.Background(), 1, "service-account:1")
identity, err := svc.ResolveIdentity(context.Background(), 1, authn.MustParseNamespaceID("service-account:1"))
assert.NoError(t, err)
assert.NotNil(t, identity)
})
@@ -521,7 +521,7 @@ func TestService_ResolveIdentity(t *testing.T) {
})
})
identity, err := svc.ResolveIdentity(context.Background(), 1, "api-key:1")
identity, err := svc.ResolveIdentity(context.Background(), 1, authn.MustParseNamespaceID("api-key:1"))
assert.NoError(t, err)
assert.NotNil(t, identity)
})