php - CakePHP:ACL 的误报 authError

标签 php cakephp acl

我已经在我公司的现有站点内使用 CakePHP 设置了一个有效的 ACL 系统。访问限制非常有效,无权访问站点特定部分的组和单个用户会收到一条 authError 消息,说明他们没有适当的权限。

唯一的问题是在 Firefox 中我有时会得到——我想称之为——误报。这意味着,即使用户可以访问某个 Controller 和操作,authError 仍然会弹出。奇怪的是, View 仍然正确呈现,除了 authError 没有任何错误。一切正常,用户可以看到他们需要看到的东西。只有有时 authError 仍然显示。

现在这种情况有时会在 Firefox 中随机发生,但在 IE8 中会一直发生。即使用户拥有整个站点的完全访问权限,authError 消息仍然显示在 IE8 中的每个页面上。我没有检查这个问题是否在其他 IE 浏览器中仍然存在,但由于它在 IE8 和 FF 中都发生,我的想法是它们可能也存在于其他 IE 浏览器中。

现在我无法理解为什么会发生这种情况,因为这里没有真正的模式。在 FF 中,authError 随机给出一个误报,在 IE8 中,它只是一直显示。

有人可能会争辩说,出于某种原因,在 authError 消息被“开始”显示后检查用户权限。即使已显示错误消息,也会导致正确访问。我已经检查过页面的加载时间是否与它有关,但似乎并非如此。

周围是否有用户知道此问题的原因可能是什么?提前致谢!

最佳答案

我不完全确定为什么会这样,我不知道您是否能够解决您的问题。但是,我也在运行 ACL 并且遇到了类似的问题,我想我会在这里发布它并希望对某人有所帮助。

我有一个 Articles Controller ,我需要公开 indexview 操作。不管我做什么,都没有用。我仍然会收到相同的 not authorized 错误。经过无数个不眠之夜的尝试,我发现,虽然我请求的是 view 操作,但在 view 操作中引用的任何其他操作,如 getRelatedgetComments 也必须添加。

问题已解决,至少我是这么认为的。但是,间歇性地,错误会一次又一次地弹出。同样的问题,同样的错误。现在,我可以访问 View 操作但不能访问 Index,尽管 $this->Auth->allow

一切似乎都很好

经过更多的摸索之后,我发现我必须对我的类别 Controller 做同样的事情。在此 Controller 中,我创建了一个 getRelated 操作,该操作将根据文章的类别检索与特定文章相关的所有文章。

一旦我这样做,现在我所有的问题都消失了,我也没有遇到过类似的问题。现在我可以真正专注于项目的其他部分。

关于php - CakePHP:ACL 的误报 authError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7593910/

相关文章:

php - 递归用另一个数组替换具有特定键的一个数组

php - Mysql变量不能通过php mysql查询工作

linux - Setfacl - 不支持

php - 确定在 PHP 类文件中定义了哪些类

php - 我如何在 cakephp 1.3 中使用独立类?

php - 如何在 Cake 3 的表模型文件中设置数据源?

php - Cakephp一次保存多条记录

cakephp - CakePHP 可以自动从模型创建表吗?

zend-framework - 使用父/子关系构建 Zend_Acl 和 CRUD

php - 从数据库中提取用户访问级别并添加到 session 中