【发布时间】:2020-08-02 19:00:22
【问题描述】:
到目前为止,我一直在 CommandHandlers 中处理授权。
一个例子是我有一个包含经理列表的聚合“团队”(来自用户的 AggregateIdentifier)。团队聚合中的所有命令处理程序然后验证执行命令的用户是团队的经理。 userId 作为元数据注入到基于 SecurityContext 的 CommandHandlerInterceptor 中。
我主要担心的是,当我使用 sagas 时,跨针对不同聚合发出的命令维护用户上下文会成为额外的开销。除此之外,管理器关联可能会在 saga 运行期间以及随后的失败命令期间过期,从而导致状态不完整,也需要使用一些回滚功能来处理。
最好在我的控制器层中进行授权以避免额外的开销,还是我应该将它视为更好的做法,让我的 CommandHandlers 决定命令是否对聚合有效?
【问题讨论】:
标签: event-sourcing axon