forked from TrueCloudLab/frostfs-node
[#1286] services/object: Validate object when created with sesssion token
All fields set by a user should be verified. Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
parent
c6a9c5cd8c
commit
5736b834c3
4 changed files with 89 additions and 71 deletions
|
@ -94,18 +94,21 @@ func (p *Streamer) initTarget(prm *PutInitPrm) error {
|
|||
if sToken == nil && !prm.hdr.OwnerID().Equal(owner.NewIDFromPublicKey(&sessionKey.PublicKey)) {
|
||||
return fmt.Errorf("(%T) session token is missing but object owner id is different from the default key", p)
|
||||
}
|
||||
|
||||
p.target = transformer.NewPayloadSizeLimiter(
|
||||
p.maxPayloadSz,
|
||||
func() transformer.ObjectTarget {
|
||||
return transformer.NewFormatTarget(&transformer.FormatterParams{
|
||||
Key: sessionKey,
|
||||
NextTarget: p.newCommonTarget(prm),
|
||||
SessionToken: sToken,
|
||||
NetworkState: p.networkState,
|
||||
})
|
||||
},
|
||||
)
|
||||
p.target = &validatingTarget{
|
||||
fmt: p.fmtValidator,
|
||||
unpreparedObject: true,
|
||||
nextTarget: transformer.NewPayloadSizeLimiter(
|
||||
p.maxPayloadSz,
|
||||
func() transformer.ObjectTarget {
|
||||
return transformer.NewFormatTarget(&transformer.FormatterParams{
|
||||
Key: sessionKey,
|
||||
NextTarget: p.newCommonTarget(prm),
|
||||
SessionToken: sToken,
|
||||
NetworkState: p.networkState,
|
||||
})
|
||||
},
|
||||
),
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue