Domain driven design 在域驱动设计中实现安全性的层?

Domain driven design 在域驱动设计中实现安全性的层?,domain-driven-design,Domain Driven Design,在领域驱动的设计体系结构中,哪一层是 实施安全(访问控制)? 该层中的结构将如何改变? 它将是交叉的?身份验证几乎总是在应用程序层进行。DDD是关于建模不变量的,您的业务专家谈到了这些不变量,并且这些不变量可能会发生变化。像身份验证这样的东西通常不会出现在业务专家的雷达上,而是被视为给定的。此外,身份验证的逻辑不太可能改变 授权有点棘手。有时,您确实需要将其引入域层,因为您的业务专家会谈到授权。例如“在经理和区域经理签字之前,订单无法发布”。对我来说,这就是域逻辑,因为它是一种不变的,并且是一种

在领域驱动的设计体系结构中,哪一层是 实施安全(访问控制)? 该层中的结构将如何改变?
它将是交叉的?

身份验证几乎总是在应用程序层进行。DDD是关于建模不变量的,您的业务专家谈到了这些不变量,并且这些不变量可能会发生变化。像身份验证这样的东西通常不会出现在业务专家的雷达上,而是被视为给定的。此外,身份验证的逻辑不太可能改变

授权有点棘手。有时,您确实需要将其引入域层,因为您的业务专家会谈到授权。例如“在经理和区域经理签字之前,订单无法发布”。对我来说,这就是域逻辑,因为它是一种不变的,并且是一种业务策略,将来可能会发生变化


我说,一个好的测试是,如果你作为一个程序员提出了某种需求,那么它就进入了应用层。如果您的业务专家谈到与此相关的规则和策略,那么它就是域层。

主要在应用程序层,偶尔在域中。你可能会意识到,有时候,并没有任何切实可行的方法像我们处理不变量那样在事务上强制执行授权规则。一位朋友告诉我,我应该进行交叉切割,这毫无意义。安全性是一个跨领域的问题,因为它跨越了许多层。没有交叉层(除非您可能考虑面向方面编程(AOP))。在基础设施中创建项目是一种出路吗?