From f32c9670ad7e775d1afbe1c178ce4e27b0d2a66f Mon Sep 17 00:00:00 2001 From: Leonard Lyubich Date: Thu, 17 Mar 2022 09:36:09 +0300 Subject: [PATCH] [#1247] object: Return status errors from `util.KeyStorage` Return `SessionTokenExpired`/`SessionTokenNotFound` error from `apistatus` package if private session token is expired/missing. These errors are returned by storage node's server as NeoFS API statuses. Signed-off-by: Leonard Lyubich --- pkg/services/object/util/key.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkg/services/object/util/key.go b/pkg/services/object/util/key.go index 4bcf57eb..c92d8c12 100644 --- a/pkg/services/object/util/key.go +++ b/pkg/services/object/util/key.go @@ -2,18 +2,13 @@ package util import ( "crypto/ecdsa" - "errors" "github.com/nspcc-dev/neofs-node/pkg/core/netmap" "github.com/nspcc-dev/neofs-node/pkg/services/session/storage" + apistatus "github.com/nspcc-dev/neofs-sdk-go/client/status" "github.com/nspcc-dev/neofs-sdk-go/session" ) -var ( - errNoSessionToken = errors.New("session token does not exist") - errSessionTokenExpired = errors.New("session token has been expired") -) - // KeyStorage represents private key storage of the local node. type KeyStorage struct { key *ecdsa.PrivateKey @@ -41,11 +36,16 @@ func (s *KeyStorage) GetKey(token *session.Token) (*ecdsa.PrivateKey, error) { pToken := s.tokenStore.Get(token.OwnerID(), token.ID()) if pToken != nil { if pToken.ExpiredAt() <= s.networkState.CurrentEpoch() { - return nil, errSessionTokenExpired + var errExpired apistatus.SessionTokenExpired + + return nil, errExpired } return pToken.SessionKey(), nil } - return nil, errNoSessionToken + + var errNotFound apistatus.SessionTokenNotFound + + return nil, errNotFound } return s.key, nil