Обеспечить безопасность всего контроллера в Symfony с помощью sfGuard? - PullRequest
1 голос
/ 29 июля 2011

Я просматривал Документы для sfGuard и Symfony о безопасности. Но я не могу найти где-нибудь о безопасности всего контроллера. Там только называется действие Secure.

Я пытался использовать метод preExecute для вызова forward404Unless($this->getUser()->hasGroup('admin')), но он не работает.

Можно ли использовать security.yml и sfGuard для защиты моих действий в контроллере? Или есть практика делать это в Symfony? Будет сложно отредактировать каждый отдельный контроллер, который у меня был, чтобы создать собственную систему безопасности, которая может измениться в будущем.

Спасибо.

Ответы [ 2 ]

1 голос
/ 29 июля 2011

Ну, в Symfony используется каскадная схема конфигурации, позволяющая вам сконфигурировать весь ваш проект / приложение / модуль / действие более удобным и практичным способом. С безопасностью происходит то же самое, вы можете использовать security.yml для определения ограничений доступа.

Если вы создаете файл security.yml в папке приложения (это будет $ sf_root / app_name / config / security.yml) и указываете что-то вроде этого:

default:
  is_secure:true

Это сделает все ваше приложение безопасным по умолчанию (пользователи должны будут войти в систему), что позволит вам перезаписать при подходе. Допустим, у файлового модуля есть действие «скачать», для которого требуются учетные данные администратора, но все остальные действия могут использоваться пользователем, имеющим «общие» и «администраторские» учетные данные, поэтому вам нужно будет создать security.yml по адресу $ sf_root / apps / имя_приложения / modules / file / config / и определить:

all:
  credentials: [[ common , administrator]]

download:
  credentials: [ administrator ]

Для получения дополнительной информации о безопасности и дополнительных учетных данных, пожалуйста, посетите страницу Symfony на Action Security

1 голос
/ 29 июля 2011

Вы можете использовать security.yml следующим образом:

all:
  credentials: [admin]

Я не уверен, что он работает с группой.

...