From cfdaa82fea63f529df0b4a9d5ceea9237a263e48 Mon Sep 17 00:00:00 2001 From: crn4 Date: Mon, 16 Jun 2025 15:21:00 +0200 Subject: [PATCH] login filter check on login --- management/server/grpcserver.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/management/server/grpcserver.go b/management/server/grpcserver.go index 35dc245f9..fc2c90a47 100644 --- a/management/server/grpcserver.go +++ b/management/server/grpcserver.go @@ -455,6 +455,12 @@ func (s *GRPCServer) Login(ctx context.Context, req *proto.EncryptedMessage) (*p return nil, err } + peerMeta := extractPeerMeta(ctx, loginReq.GetMeta()) + metahashed := metaHash(peerMeta) + if !s.accountManager.AllowSync(peerKey.String(), metahashed) { + return nil, internalStatus.ErrPeerAlreadyLoggedIn + } + //nolint ctx = context.WithValue(ctx, nbContext.PeerIDKey, peerKey.String()) accountID, err := s.accountManager.GetAccountIDForPeerKey(ctx, peerKey.String()) @@ -485,7 +491,7 @@ func (s *GRPCServer) Login(ctx context.Context, req *proto.EncryptedMessage) (*p peer, netMap, postureChecks, err := s.accountManager.LoginPeer(ctx, types.PeerLogin{ WireGuardPubKey: peerKey.String(), SSHKey: string(sshKey), - Meta: extractPeerMeta(ctx, loginReq.GetMeta()), + Meta: peerMeta, UserID: userID, SetupKey: loginReq.GetSetupKey(), ConnectionIP: realIP,