Repository Pattern и наслоения. Где я могу подать заявление безопасности?

голоса
10

Я делаю все возможное, чтобы разработать свой веб-приложение с хорошим разделением между слоями. Я использую шаблон репозитория и как таковые имею SQLObjectRepository, который называется моим ObjectService, который называется моим веб-интерфейсом.

В моей объектной модели, пользователь связан с одним или более областей, которые должны фильтровать объекты, они должны иметь доступ. Мой вопрос, когда я запрашивая для объектов, я поставил код на службе, чтобы установить права доступа на объекты, или это должно быть код в хранилище? Если пользователь является членом 2-й регионов, я должен передать пользователь в качестве параметра к службе, или я должен передать регионы пользователя к услуге?

Задан 09/12/2008 в 19:49
источник пользователем
На других языках...                            


1 ответов

голоса
3

Я бы:

  • Выпишите чек безопасности таким образом, что он может быть применен в любом понравившемся месте. Таким образом, вы можете реорганизовывать по мере изменения требований.

  • Если проверка безопасности действительно будет всегда применять, поместите его в хранилище слоя (или лучше, в одном аспекте , если ваш язык поддерживает его) , так что несколько сервисов будут все доли общей безопасности , если они используют один и тот же репозиторий. В противном случае поместите его в службе (или аспект , действующий на службе).

  • передать весь объект пользователя в механизм проверки безопасности:

    • если проверка безопасности позже становится более сложной (зависит от других свойств пользователя) АНИ не изменится;
    • это делает более семантический смысл - вы проверяете пользователь имеет разрешение сделать что-то, не то, что список стран делает.
Ответил 09/12/2008 в 22:56
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more