[#31] Client: fix for session

Signed-off-by: Pavel Gross <p.gross@yadro.com>
This commit is contained in:
Pavel Gross 2025-02-17 16:01:41 +03:00
parent 195854a45b
commit 2e56c13946
10 changed files with 247 additions and 146 deletions

View file

@ -47,7 +47,8 @@ public struct FrostFsPlacementPolicy(bool unique,
Filters = { },
Selectors = { },
Replicas = { },
Unique = Unique
Unique = Unique,
ContainerBackupFactor = BackupFactor
};
foreach (var replica in Replicas)

View file

@ -45,9 +45,10 @@ public class FrostFsObject
/// <value>Reader for received data</value>
public IObjectReader? ObjectReader { get; set; }
internal byte[] SingleObjectPayload
public byte[] SingleObjectPayload
{
get { return bytes ?? []; }
set { bytes = value; }
}
/// <summary>

View file

@ -1,5 +1,5 @@
using System;
using System.Diagnostics;
using FrostFS.Refs;
using FrostFS.SDK.Client;
@ -36,7 +36,9 @@ public class FrostFsSessionToken
get
{
if (_id == Guid.Empty)
{
_id = ProtoId.ToUuid();
}
return _id;
}
@ -47,7 +49,9 @@ public class FrostFsSessionToken
get
{
if (_sessionKey.IsEmpty)
{
_sessionKey = ProtoSessionKey.Memory;
}
return _sessionKey;
}
@ -69,12 +73,15 @@ public class FrostFsSessionToken
sessionToken.Body.Container = new() { Verb = verb };
if (containerId != null)
{
sessionToken.Body.Container.ContainerId = containerId;
}
else
{
sessionToken.Body.Container.Wildcard = true;
}
sessionToken.Body.SessionKey = key.PublicKeyProto;
sessionToken.Signature = key.ECDsaKey.SignMessagePart(sessionToken.Body);
return sessionToken;
@ -100,7 +107,9 @@ public class FrostFsSessionToken
ObjectSessionContext.Types.Target target = new() { Container = address.ContainerId };
if (address.ObjectId != null)
{
target.Objects.Add(address.ObjectId);
}
sessionToken.Body.Object = new()
{
@ -108,8 +117,6 @@ public class FrostFsSessionToken
Verb = verb
};
sessionToken.Body.SessionKey = key.PublicKeyProto;
sessionToken.Signature = key.ECDsaKey.SignMessagePart(sessionToken.Body);
return sessionToken;