From c516c7c5f46d6a3ae8e183f4582baf112ca0a50e Mon Sep 17 00:00:00 2001 From: Dmitrii Stepanov Date: Tue, 21 Nov 2023 11:42:30 +0300 Subject: [PATCH] [#821] node: Pass user.ID by value Signed-off-by: Dmitrii Stepanov --- cmd/frostfs-cli/modules/accounting/balance.go | 2 +- cmd/frostfs-cli/modules/container/list.go | 2 +- cmd/frostfs-cli/modules/object/lock.go | 2 +- cmd/frostfs-cli/modules/object/put.go | 4 ++-- pkg/core/object/fmt.go | 4 ++-- pkg/core/object/fmt_test.go | 14 +++++++------- pkg/services/object/acl/acl_test.go | 6 +++--- pkg/services/object/acl/eacl/v2/object.go | 4 ++-- pkg/services/object/delete/exec.go | 4 ++-- pkg/services/object/put/streamer.go | 2 +- pkg/services/object/util/key_test.go | 4 ++-- .../session/storage/persistent/executor_test.go | 6 +++--- 12 files changed, 27 insertions(+), 27 deletions(-) diff --git a/cmd/frostfs-cli/modules/accounting/balance.go b/cmd/frostfs-cli/modules/accounting/balance.go index 8e975fb0..d10b9eaa 100644 --- a/cmd/frostfs-cli/modules/accounting/balance.go +++ b/cmd/frostfs-cli/modules/accounting/balance.go @@ -39,7 +39,7 @@ var accountingBalanceCmd = &cobra.Command{ var prm internalclient.BalanceOfPrm prm.SetClient(cli) - prm.Account = &idUser + prm.Account = idUser res, err := internalclient.BalanceOf(cmd.Context(), prm) commonCmd.ExitOnErr(cmd, "rpc error: %w", err) diff --git a/cmd/frostfs-cli/modules/container/list.go b/cmd/frostfs-cli/modules/container/list.go index 1e7ba96e..86c1e5fb 100644 --- a/cmd/frostfs-cli/modules/container/list.go +++ b/cmd/frostfs-cli/modules/container/list.go @@ -47,7 +47,7 @@ var listContainersCmd = &cobra.Command{ var prm internalclient.ListContainersPrm prm.SetClient(cli) - prm.Account = &idUser + prm.Account = idUser res, err := internalclient.ListContainers(cmd.Context(), prm) commonCmd.ExitOnErr(cmd, "rpc error: %w", err) diff --git a/cmd/frostfs-cli/modules/object/lock.go b/cmd/frostfs-cli/modules/object/lock.go index fa189858..d2e9af24 100644 --- a/cmd/frostfs-cli/modules/object/lock.go +++ b/cmd/frostfs-cli/modules/object/lock.go @@ -94,7 +94,7 @@ var objectLockCmd = &cobra.Command{ obj := objectSDK.New() obj.SetContainerID(cnr) - obj.SetOwnerID(&idOwner) + obj.SetOwnerID(idOwner) obj.SetType(objectSDK.TypeLock) obj.SetAttributes(expirationAttr) obj.SetPayload(lock.Marshal()) diff --git a/cmd/frostfs-cli/modules/object/put.go b/cmd/frostfs-cli/modules/object/put.go index 97bb12db..a41d3c0a 100644 --- a/cmd/frostfs-cli/modules/object/put.go +++ b/cmd/frostfs-cli/modules/object/put.go @@ -93,7 +93,7 @@ func putObject(cmd *cobra.Command, _ []string) { attrs := getAllObjectAttributes(cmd) obj.SetContainerID(cnr) - obj.SetOwnerID(&ownerID) + obj.SetOwnerID(ownerID) obj.SetAttributes(attrs...) notificationInfo, err := parseObjectNotifications(cmd) @@ -160,7 +160,7 @@ func readFilePayload(filename string, cmd *cobra.Command) (io.Reader, cid.ID, us commonCmd.ExitOnErr(cmd, "can't unmarshal object from given file: %w", objTemp.Unmarshal(buf)) payloadReader := bytes.NewReader(objTemp.Payload()) cnr, _ := objTemp.ContainerID() - ownerID := *objTemp.OwnerID() + ownerID := objTemp.OwnerID() return payloadReader, cnr, ownerID } diff --git a/pkg/core/object/fmt.go b/pkg/core/object/fmt.go index e6576772..e266800b 100644 --- a/pkg/core/object/fmt.go +++ b/pkg/core/object/fmt.go @@ -165,7 +165,7 @@ func (v *FormatValidator) validateSignatureKey(obj *objectSDK.Object) error { } token := obj.SessionToken() - ownerID := *obj.OwnerID() + ownerID := obj.OwnerID() if token == nil || !token.AssertAuthKey(&key) { return v.checkOwnerKey(ownerID, key) @@ -412,7 +412,7 @@ func (v *FormatValidator) checkAttributes(obj *objectSDK.Object) error { var errIncorrectOwner = errors.New("incorrect object owner") func (v *FormatValidator) checkOwner(obj *objectSDK.Object) error { - if idOwner := obj.OwnerID(); idOwner == nil || len(idOwner.WalletBytes()) == 0 { + if idOwner := obj.OwnerID(); idOwner.IsEmpty() { return errIncorrectOwner } diff --git a/pkg/core/object/fmt_test.go b/pkg/core/object/fmt_test.go index 2a5b5690..a8901ad6 100644 --- a/pkg/core/object/fmt_test.go +++ b/pkg/core/object/fmt_test.go @@ -32,7 +32,7 @@ func blankValidObject(key *ecdsa.PrivateKey) *objectSDK.Object { obj := objectSDK.New() obj.SetContainerID(cidtest.ID()) - obj.SetOwnerID(&idOwner) + obj.SetOwnerID(idOwner) return obj } @@ -107,7 +107,7 @@ func TestFormatValidator_Validate(t *testing.T) { obj := objectSDK.New() obj.SetContainerID(cidtest.ID()) obj.SetSessionToken(tok) - obj.SetOwnerID(&idOwner) + obj.SetOwnerID(idOwner) require.NoError(t, objectSDK.SetIDWithSignature(ownerKey.PrivateKey, obj)) @@ -303,7 +303,7 @@ func TestFormatValidator_ValidateTokenIssuer(t *testing.T) { obj := objectSDK.New() obj.SetContainerID(cidtest.ID()) obj.SetSessionToken(tok) - obj.SetOwnerID(&owner) + obj.SetOwnerID(owner) require.NoError(t, objectSDK.SetIDWithSignature(signer.PrivateKey, obj)) require.NoError(t, v.Validate(context.Background(), obj, false)) @@ -352,7 +352,7 @@ func TestFormatValidator_ValidateTokenIssuer(t *testing.T) { obj := objectSDK.New() obj.SetContainerID(cnrID) obj.SetSessionToken(tok) - obj.SetOwnerID(&owner) + obj.SetOwnerID(owner) require.NoError(t, objectSDK.SetIDWithSignature(signer.PrivateKey, obj)) require.NoError(t, v.Validate(context.Background(), obj, false)) @@ -386,7 +386,7 @@ func TestFormatValidator_ValidateTokenIssuer(t *testing.T) { obj := objectSDK.New() obj.SetContainerID(cnrID) obj.SetSessionToken(tok) - obj.SetOwnerID(&owner) + obj.SetOwnerID(owner) require.NoError(t, objectSDK.SetIDWithSignature(signer.PrivateKey, obj)) v := NewFormatValidator( @@ -459,7 +459,7 @@ func TestFormatValidator_ValidateTokenIssuer(t *testing.T) { obj := objectSDK.New() obj.SetContainerID(cnrID) obj.SetSessionToken(tok) - obj.SetOwnerID(&owner) + obj.SetOwnerID(owner) require.NoError(t, objectSDK.SetIDWithSignature(signer.PrivateKey, obj)) v := NewFormatValidator( @@ -535,7 +535,7 @@ func TestFormatValidator_ValidateTokenIssuer(t *testing.T) { obj := objectSDK.New() obj.SetContainerID(cnrID) obj.SetSessionToken(tok) - obj.SetOwnerID(&owner) + obj.SetOwnerID(owner) require.NoError(t, objectSDK.SetIDWithSignature(signer.PrivateKey, obj)) v := NewFormatValidator( diff --git a/pkg/services/object/acl/acl_test.go b/pkg/services/object/acl/acl_test.go index b9b82dac..d63cb128 100644 --- a/pkg/services/object/acl/acl_test.go +++ b/pkg/services/object/acl/acl_test.go @@ -39,14 +39,14 @@ func TestStickyCheck(t *testing.T) { info.SetSenderKey(make([]byte, 33)) // any non-empty key info.SetRequestRole(acl.RoleContainer) - require.True(t, checker.StickyBitCheck(info, *usertest.ID())) + require.True(t, checker.StickyBitCheck(info, usertest.ID())) var basicACL acl.Basic basicACL.MakeSticky() info.SetBasicACL(basicACL) - require.True(t, checker.StickyBitCheck(info, *usertest.ID())) + require.True(t, checker.StickyBitCheck(info, usertest.ID())) }) t.Run("owner ID and/or public key emptiness", func(t *testing.T) { @@ -72,7 +72,7 @@ func TestStickyCheck(t *testing.T) { var ownerID user.ID if withOwner { - ownerID = *usertest.ID() + ownerID = usertest.ID() } require.Equal(t, expected, checker.StickyBitCheck(info, ownerID)) diff --git a/pkg/services/object/acl/eacl/v2/object.go b/pkg/services/object/acl/eacl/v2/object.go index 690e4aa7..72bd4c2d 100644 --- a/pkg/services/object/acl/eacl/v2/object.go +++ b/pkg/services/object/acl/eacl/v2/object.go @@ -62,8 +62,8 @@ func headersFromObject(obj *objectSDK.Object, cnr cid.ID, oid *oid.ID) []eaclSDK res = append(res, oidHeader(*oid)) } - if idOwner := obj.OwnerID(); idOwner != nil { - res = append(res, ownerIDHeader(*idOwner)) + if idOwner := obj.OwnerID(); !idOwner.IsEmpty() { + res = append(res, ownerIDHeader(idOwner)) } cs, ok := obj.PayloadChecksum() diff --git a/pkg/services/object/delete/exec.go b/pkg/services/object/delete/exec.go index aac8c886..d48f8ab7 100644 --- a/pkg/services/object/delete/exec.go +++ b/pkg/services/object/delete/exec.go @@ -176,11 +176,11 @@ func (exec *execCtx) initTombstoneObject() error { tokenSession := exec.commonParameters().SessionToken() if tokenSession != nil { issuer := tokenSession.Issuer() - exec.tombstoneObj.SetOwnerID(&issuer) + exec.tombstoneObj.SetOwnerID(issuer) } else { // make local node a tombstone object owner localUser := exec.svc.netInfo.LocalNodeID() - exec.tombstoneObj.SetOwnerID(&localUser) + exec.tombstoneObj.SetOwnerID(localUser) } var a objectSDK.Attribute diff --git a/pkg/services/object/put/streamer.go b/pkg/services/object/put/streamer.go index 10f93284..a9abe407 100644 --- a/pkg/services/object/put/streamer.go +++ b/pkg/services/object/put/streamer.go @@ -112,7 +112,7 @@ func (p *Streamer) initTrustedTarget(prm *PutInitPrm) error { // If it isn't owner key, replication attempts will fail, thus this check. if sToken == nil { ownerObj := prm.hdr.OwnerID() - if ownerObj == nil { + if ownerObj.IsEmpty() { return errors.New("missing object owner") } diff --git a/pkg/services/object/util/key_test.go b/pkg/services/object/util/key_test.go index 76e320e0..cb7ddfde 100644 --- a/pkg/services/object/util/key_test.go +++ b/pkg/services/object/util/key_test.go @@ -25,7 +25,7 @@ func TestNewKeyStorage(t *testing.T) { tokenStor := tokenStorage.NewTokenStore() stor := util.NewKeyStorage(&nodeKey.PrivateKey, tokenStor, mockedNetworkState{42}) - owner := *usertest.ID() + owner := usertest.ID() t.Run("node key", func(t *testing.T) { key, err := stor.GetKey(nil) @@ -36,7 +36,7 @@ func TestNewKeyStorage(t *testing.T) { t.Run("unknown token", func(t *testing.T) { _, err = stor.GetKey(&util.SessionInfo{ ID: uuid.New(), - Owner: *usertest.ID(), + Owner: usertest.ID(), }) require.Error(t, err) }) diff --git a/pkg/services/session/storage/persistent/executor_test.go b/pkg/services/session/storage/persistent/executor_test.go index ee0c8f91..39cb1435 100644 --- a/pkg/services/session/storage/persistent/executor_test.go +++ b/pkg/services/session/storage/persistent/executor_test.go @@ -22,7 +22,7 @@ func TestTokenStore(t *testing.T) { defer ts.Close() - owner := *usertest.ID() + owner := usertest.ID() var ownerV2 refs.OwnerID owner.WriteToV2(&ownerV2) @@ -66,7 +66,7 @@ func TestTokenStore_Persistent(t *testing.T) { ts, err := NewTokenStore(path) require.NoError(t, err) - idOwner := *usertest.ID() + idOwner := usertest.ID() var idOwnerV2 refs.OwnerID idOwner.WriteToV2(&idOwnerV2) @@ -127,7 +127,7 @@ func TestTokenStore_RemoveOld(t *testing.T) { defer ts.Close() - owner := *usertest.ID() + owner := usertest.ID() var ownerV2 refs.OwnerID owner.WriteToV2(&ownerV2)