2011-07-29 21 views
1

我正在查看關於安全性的sfGuard和Symfony的文檔。但是我無法找到任何關於安全控制器的任何地方。只有被稱爲行動安全。用sfGuard在Symfony中保護整個控制器?

我試圖用preExecute方法打電話給forward404Unless($this->getUser()->hasGroup('admin')),但它不起作用。

是否有可能使用security.yml和sfGuard來確保我的操作在控制器中?或者有沒有在symfony中這樣做的做法?編輯每一個我必須創建自定義安全性的控制器將會是一件麻煩事,而這些安全性可能會在未來發生變化。

謝謝。

回答

1

那麼symfony使用級聯配置架構,這些架構允許您以更加可重用和實用的方式配置所有項目/應用程序/模塊/操作。隨着安全性發生相同的事情,您可以使用security.yml來定義訪問限制。

如果您在應用中創建文件夾security.yml(這將是$ sf_root/APP_NAME /配置/ security.yml)和指定這樣的東西:

default: 
    is_secure:true 

它將使所有的應用程序的安全默認情況下(用戶必須登錄),允許您在適用時覆蓋。假設文件模塊有一個需要admnistrator憑證的動作「下載」,但所有其他動作可以由具有「common」和「administrator」憑證的用戶使用,因此您必須在$ sf_root /應用程序/ APP_NAME /模塊/文件/配置/和定義:

all: 
    credentials: [[ common , administrator]] 

download: 
    credentials: [ administrator ] 

有關安全性和高級證書的詳細信息,請檢查出Action Security

的symfony頁面
1

您可以使用security.yml這樣的:

all: 
    credentials: [admin] 

我不知道它與一組工作,雖然。