МанитонДокументация
Контракты

Ledger: внешняя граница

Публичные чтения отделены от внутренних финансовых команд.

Feature: Подмена владельца счета
  Scenario: Подмена владельца счета
    Given пользователь без SYSTEM_ADMIN вошел со своим токеном
    When ListAccounts содержит чужой userId
    Then возвращается PermissionDenied
    And actor из тела не влияет на проверку владельца

Алгоритм допуска

ledgerAccessInterceptor отклоняет streaming, требует Bearer и подтвержденный subject. Ошибка сервиса identity возвращает Unavailable; неверный токен — Unauthenticated. Лимит по субъекту применяется после проверки identity. Внешне разрешены только ListAccounts и ListOperations. Свой userId допускается; иной или отсутствующий userId требует серверной проверки SYSTEM_ADMIN. Затем context.actor заменяется субъектом токена. GetAccount, CreateOperation, CreateHold и остальные методы не становятся публичными из-за наличия protobuf.

Внутренний транспорт

Финансовые команды остаются в доверенном Kafka-контуре; внешний bearer не защищает его автоматически. Старые REST-пути и мост авторизации не восстанавливаются как обход. Источник: apps/services/ledger/src/domains/ledger/presentation/ledger-access.interceptor.ts. API и ошибки.

Сценарии задают ожидаемое поведение. Наличие страницы не подтверждает реализацию, банковское исполнение или согласование Правил.

На этой странице