我有很多相關的帖子,但是經過一些冗長的搜索後,找不到我想要的東西,我很抱歉存在某處。在Zend應用程序中重定向請求形成一個無所不在的控制器,無需永久循環
我的目標 - 對我的Zend App的所有請求都必須通過preDispatch插件,然後傳遞給自定義Auth控制器,該控制器將決定現有的認證憑證是否足以滿足請求的操作。 '充足'取決於應用程序的邏輯,因此我想在控制器+模型級別執行此操作。如果他們足夠了,他們會將原始請求發送到指定的控制器+操作,如果不是,則默認爲「丟失」操作。
目前我使用的身份驗證自定義插件在preDispatch設置簡單地檢查POST'ed身份驗證憑據(如果我們登錄),然後在所有情況下的插件存儲的原始請求,並重定向大家(AUTH 「d與否)我AUTH控制器,一拉:
$request->setModuleName('default')
->setControllerName('auth')
->setActionName('check')
->setParam('oreq',$request->getParams());
我的問題/問題是,我auth-內>檢查行動,我應該如何執行重定向的決定作出後?如果我使用:
$this->_helper->redirector($or['action'], $oreq['controller']);
然後根據這些要求通過preDispatch插件,我再次明顯得到一個無限循環。當然,我可以通過重定向傳遞一些信息,以便Auth插件忽略這些請求,但這顯然是一個安全漏洞。我曾想過可能會生成並存儲一個md5散列,將它存儲到會話中,並將其作爲一個轉義參數傳遞,但這似乎有點粗略。
有更好的想法嗎?也許是一種重定向方法,它不會通過Zend App中的標準預調度程序?提前致謝!
你是明星,非常感謝。 – Dan 2011-12-22 18:16:05
fyi,_forward確實流過調度 – Dan 2011-12-22 22:17:00