2011-09-29 39 views
3

我已經在我公司現有的站點中使用CakePHP建立了一個工作ACL系統。訪問限制是完美的,沒有訪問網站特定部分的權利的團體和單個用戶會收到authError消息,說明他們沒有適當的權利。CakePHP:帶有ACL的假陽性authError

唯一的問題是,在Firefox中,我有時會得到 - 我想打電話 - 誤報。這意味着,即使用戶有權訪問某個控制器和操作,authError仍會彈出。奇怪的是,視圖仍然呈現正確,除了authError沒有任何錯誤。一切正常,用戶可以看到他們需要看到什麼。只有有時authError仍然顯示。

現在這在Firefox中有時會隨機出現,但在IE8中這種情況一直髮生。即使用戶可以完全訪問整個站點,authError消息仍然顯示在IE8的每個頁面上。我沒有檢查過,如果這個問題在其他IE瀏覽器中仍然存在,但是既然它發生在IE8和FF中,我的想法是它們可能也存在於其他IE瀏覽器中。

現在我無法理解爲什麼會發生這種情況,因爲這裏沒有真正的模式。在FF中,authError隨機給出了一個誤報,而在IE8中它只是一直顯示。

有人可能會爭辯說,出於某種原因,用戶權限在authError消息被給出'去'出現後被檢查。即使已顯示錯誤消息,也會導致適當的訪問。我已經檢查過這個頁面的加載時間是否與它有關,但這似乎並不是這樣。

是否有用戶在附近有什麼想法可能是這個問題的原因?提前致謝!

+0

我會檢查您的網頁中是否有一些內容試圖訪問受保護的URL(我想到一個Ajax請求,指向受保護操作的圖像的錯誤URL等)。它將在會話中設置一個Auth錯誤消息,該消息將在下一頁加載時顯示。 Firefox和IE之間的區別可以通過不同的緩存策略來解釋。 – nIcO

回答

0

我不完全確定爲什麼發生這種情況,我不知道你是否能夠找出你的問題。然而,我也在運行ACL,並且有類似的問題,我會在這裏發佈它,希望能幫助某人。

我有一個文章控制器,我需要indexview行動公開。不管我做了什麼,沒有任何工作。我仍然會得到相同的not authorized error。經過許多不眠之夜的嘗試和嘗試之後,我發現,雖然我要求動作view,但在視圖動作中引用的任何其他操作(如getRelatedgetComments)也必須添加。

問題已修復,或者我想。但是,間歇性地,錯誤會一次又一次地彈出。同樣的問題,同樣的錯誤。現在,我能夠訪問查看操作,但不能訪問索引,雖然一切似乎都很好$this->Auth->allow

經過多次頭痛之後,我發現我必須對我的類別控制器執行相同的操作。在此控制器中,我創建了一個getRelated操作,可根據其類別檢索與特定文章相關的所有文章。

只要我這樣做,現在我所有的問題都消失了,我還沒有遇到類似的問題。現在我實際上可以集中到我的項目的其他部分。