Домен, управляемый дизайн и безопасность - PullRequest
6 голосов
/ 30 марта 2011

Это связано с вопросом , который, кажется, задал некоторое время назад.Реализация безопасности в проекте, который придерживается базовых принципов доменного дизайна.позвольте мне привести пример

Банковская система:
Вариант использования: Вносится новый банковский депозит, требующий одобрения, поскольку он является первым депозитом

a.Клерк может автоматически авторизоваться, если сумма депозита <5000 <br>b.Менеджер может быть двух типов - менеджер банка / менеджер счета.ТОЛЬКО менеджер по работе с клиентами может авторизовать любые учетные записи, которые имеют депозит> 5000

Мои проблемы заключаются в следующем (Просьба исправить, если проблема сама по себе верна)

  1. Не уверен, где я должен построить это следующеелогика - проверяет, есть ли у вошедшего в систему пользователя полномочия на выполнение определенных действий с учетом его названия (в данном случае это менеджер учетных записей).Авторизация - это пример использования, но уровень безопасности, похоже, обладает глубокими знаниями об объекте домена
  2. В общем случае Авторизация (не аутентификация).Я знаю, что аутентификация на основе ролей могла бы помочь, но вопрос «где» - в каком слое и в потоке вызовов.Должен ли уровень пользовательского интерфейса вызывать какой-либо уровень безопасности или будет ли доменный уровень проверять себя для всех возможных комбинаций?

Пожалуйста, помогите.Это очень запутанно.

Поднимите, чтобы узнать, получит ли это уведомление экспертов

Приветствия

1 Ответ

4 голосов
/ 30 марта 2011

Безопасность - это сквозная функция проектирования, которая может влиять на все классы, методы и свойства.

С точки зрения DDD вы бы выбрали спецификации и роли.

Где и как эти спецификации применяются, зависит от вашей архитектуры.Вы могли бы пойти с аспектами, вы могли бы пойти с внутренними вызовами, событиями и т. Д.

Вот некоторые ссылки, которые я бы проверил относительно безопасности и ролей:

...