Skip to content
Snippets Groups Projects
Commit a2a30ef2 authored by Neil-Jocelyn Schark's avatar Neil-Jocelyn Schark
Browse files

test new changes

parent cbd082e5
No related branches found
No related tags found
1 merge request!977Resolve "Improve token usage for users"
Pipeline #218748 failed
This commit is part of merge request !977. Comments created here will be created in the context of that merge request.
...@@ -93,13 +93,11 @@ func (s AuthServer) Login(ctx context.Context, request *apb.LoginRequest) (*apb. ...@@ -93,13 +93,11 @@ func (s AuthServer) Login(ctx context.Context, request *apb.LoginRequest) (*apb.
return nil, err return nil, err
} }
userToUpdate.AddToken(token) err = addTokenAndEnsureTokenLimit(userToUpdate, token)
for len(userToUpdate.GetTokens()) > config.MaxTokensPerUser { if err != nil {
err = userToUpdate.RemoveToken(userToUpdate.GetTokens()[0]) return nil, err
if err != nil {
return nil, err
}
} }
err = s.userService.Update(userToUpdate) err = s.userService.Update(userToUpdate)
if err != nil { if err != nil {
return nil, err return nil, err
...@@ -218,3 +216,14 @@ func (s AuthServer) handleLogout(ctx context.Context, userName string) error { ...@@ -218,3 +216,14 @@ func (s AuthServer) handleLogout(ctx context.Context, userName string) error {
return nil return nil
} }
func addTokenAndEnsureTokenLimit(userToUpdate rbacInterfaces.User, token string) error {
userToUpdate.AddToken(token)
for len(userToUpdate.GetTokens()) > config.MaxTokensPerUser {
err := userToUpdate.RemoveToken(userToUpdate.GetTokens()[0])
if err != nil {
return err
}
}
return nil
}
...@@ -8,9 +8,13 @@ import ( ...@@ -8,9 +8,13 @@ import (
"buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate" "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate"
apb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/rbac" apb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/rbac"
"code.fbi.h-da.de/danet/gosdn/controller/config"
"code.fbi.h-da.de/danet/gosdn/controller/conflict"
eventservice "code.fbi.h-da.de/danet/gosdn/controller/eventService" eventservice "code.fbi.h-da.de/danet/gosdn/controller/eventService"
"code.fbi.h-da.de/danet/gosdn/controller/rbac" "code.fbi.h-da.de/danet/gosdn/controller/rbac"
"github.com/bufbuild/protovalidate-go" "github.com/bufbuild/protovalidate-go"
"github.com/google/uuid"
"github.com/stretchr/testify/assert"
"google.golang.org/grpc/metadata" "google.golang.org/grpc/metadata"
) )
...@@ -291,3 +295,25 @@ func TestAuth_handleLogout(t *testing.T) { ...@@ -291,3 +295,25 @@ func TestAuth_handleLogout(t *testing.T) {
}) })
} }
} }
func TestAuth_addTokenAndEnsureTokenLimit_addKey(t *testing.T) {
config.MaxTokensPerUser = 2
userID := uuid.New()
user := rbac.NewUser(userID, "testUser", map[string]string{}, "password", []string{"token1"}, "salt", conflict.Metadata{ResourceVersion: 0})
addTokenAndEnsureTokenLimit(user, "token2")
assert.Equal(t, 2, len(user.GetTokens()))
assert.Equal(t, "token1", user.GetTokens()[0])
assert.Equal(t, "token2", user.GetTokens()[1])
}
func TestAuth_addTokenAndEnsureTokenLimit_removeOldKey(t *testing.T) {
config.MaxTokensPerUser = 2
userID := uuid.New()
user := rbac.NewUser(userID, "testUser", map[string]string{}, "password", []string{"token1", "token2"}, "salt", conflict.Metadata{ResourceVersion: 0})
addTokenAndEnsureTokenLimit(user, "token3")
assert.Equal(t, 2, len(user.GetTokens()))
assert.Equal(t, "token2", user.GetTokens()[0])
assert.Equal(t, "token3", user.GetTokens()[1])
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment