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

时间:2015-03-10 16:27:04

标签: domain-driven-design

在域驱动的设计架构中,在哪个层中 实施安全(访问控制)? 层内的结构如何? 它会在横切中吗?

1 个答案:

答案 0 :(得分:2)

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

授权有点棘手。有时您需要将其纳入您的域层,因为您的业务专家会谈到授权。例如“在经理和区域经理都签字之前不能发布订单”。对我而言,这是一个领域逻辑,因为它是一个可以在未来发生变化的不变量和商业政策。

我说一个好的测试是,如果你想出一些程序员的东西,那么它就在应用层。如果您的业务专家谈到有关它的规则和政策,那么它就是域层。