chore(GWC-36,IPC-38,TST-33,TST-34,TST-36): close cycle-3 currency gaps
This commit is contained in:
@@ -90,9 +90,9 @@ detach-grace and replay-retention windows are on by default, the reconnect
|
||||
surface is a trust boundary — a retained session outlives the stream that opened
|
||||
it. The session records the opening key id (`GatewaySession.OwnerKeyId`) and
|
||||
every `StreamEvents` attach/reattach is rejected with `PermissionDenied` unless
|
||||
the caller's key id matches the owner. Gating on the `event` scope alone was
|
||||
rejected: it would let any `event`-scoped key that learned a session id attach to
|
||||
another key's retained session and receive its replayed and live data. The check
|
||||
the caller's key id matches the owner. Gating on the `events:read` scope alone was
|
||||
rejected: it would let any `events:read`-scoped key that learned a session id
|
||||
attach to another key's retained session and receive its replayed and live data. The check
|
||||
runs before any subscriber is attached, so a foreign key never touches the
|
||||
replay ring. Admin-scope override is deferred.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user