由于最相似的问题与ASP MVC有关,我想知道一些常见的正确选择策略。
让我们尝试决定,它会进入业务层还是坐在服务层上。
考虑到服务层具有经典的远程外观接口,因此用户对象实例总是在这里(服务会话绑定到用户)并准备好.hasPermission(...)
调用。但这看起来像是商业逻辑泄漏。
在业务层中实施安全检查的不同方法中,我们使用“安全令牌”参数和类似的东西来污染域对象接口。
任何建议如何克服这种权衡或者你知道唯一真正的解决方案?
答案 0 :(得分:1)
我认为这个问题的答案很复杂,早期值得一提。以下是一些指导原则。
服务层是:
的好地方业务层是:
的好地方您可以将访问决策与执行点分开。例如,您的业务逻辑可以使用代码来确定用户是否可以访问特定角色并将其作为回调提供给服务层。有时候这是有道理的。
要记住一些想法:
希望这有帮助。