Object sessions for `PUT` and `SEARCH` ops are spread to the whole
container due to op semantics. Sometimes it is convenient to spread the
session to all objects of the container for other operations. Thus,
object sessions for the whole container can be unified.
Modify docs of `ObjectSessionContext.address` field:
* require `container_id` field to be correctly set;
* require `object_id` field to be correctly field if set;
* allow `object_id` field to be unset and make this case equivalent to
the container-global session.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
To prevent theoretical cross-network replay attack, we need to have
network magic in NeoFS requests.
Add `magic_number` numeric field to `session.RequestMetaHeader`
message.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Extend `session.SessionToken.Body.context` oneof with `container` field of
type `ContainerServiceContext`. This field is going to be used for RPCs of
`container.ContainerService`.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
When object can't be found using current network map, there is a chance to find
it using netmap versions from previous epochs.
By default only current netmap is used. Well-known X-Headers can be used to set
the specific netmap version and limit how deep into the past the node can go in
the search of an object.
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
This commit:
* moves Token message to service package;
* updates token structure (new verb field, some renaming);
* replaces VerificationHeader header with Token in object package;
* removes no longer used VerificationHeader message.