1

我正在查看 sfGuard 和 Symfony 的有关安全性的文档。但我找不到任何关于保护整个控制器的地方。只有所谓的动作安全。

我尝试使用该preExecute方法进行调用,forward404Unless($this->getUser()->hasGroup('admin'))但它不起作用。

是否可以使用 security.yml 和 sfGuard 来保护我在控制器中的操作?或者在 symfony 中有这样做的做法吗?编辑我必须创建的每个控制器都将是一件麻烦事,以创建将来可能会改变的自定义安全性。

谢谢你。

4

2 回答 2

1

你可以security.yml这样使用:

all:
  credentials: [admin]

不过,我不确定它是否与团队合作。

于 2011-07-29T10:35:10.097 回答
1

symfony 使用级联配置模式,允许您以更可重用和实用的方式配置所有项目/应用程序/模块/操作。随着安全发生同样的事情,您可以使用 security.yml 来定义访问限制。

如果您在 app 文件夹中创建一个 security.yml(即 $sf_root/app_name/config/security.yml)并指定如下内容:

default:
  is_secure:true

默认情况下,它将使您的所有应用程序安全(用户必须登录),允许您在适当时覆盖。假设文件模块有一个需要管理员凭据的操作“下载”,但具有“通用”和“管理员”凭据的用户可以使用所有其他操作,因此您必须在 $sf_root/ 创建一个 security.yml apps/app_name/modules/file/config/ 并定义:

all:
  credentials: [[ common , administrator]]

download:
  credentials: [ administrator ]

有关安全性和高级凭据的更多信息,请查看Action Security上的 symfony 页面

于 2011-07-29T15:14:53.093 回答