我已经在我公司的现有站点内使用 CakePHP 设置了一个有效的 ACL 系统。访问限制非常有效,无权访问站点特定部分的组和单个用户会收到一条 authError 消息,说明他们没有适当的权限。
唯一的问题是在 Firefox 中我有时会得到——我想称之为——误报。这意味着,即使用户可以访问某个 Controller 和操作,authError 仍然会弹出。奇怪的是, View 仍然正确呈现,除了 authError 没有任何错误。一切正常,用户可以看到他们需要看到的东西。只有有时 authError 仍然显示。
现在这种情况有时会在 Firefox 中随机发生,但在 IE8 中会一直发生。即使用户拥有整个站点的完全访问权限,authError 消息仍然显示在 IE8 中的每个页面上。我没有检查这个问题是否在其他 IE 浏览器中仍然存在,但由于它在 IE8 和 FF 中都发生,我的想法是它们可能也存在于其他 IE 浏览器中。
现在我无法理解为什么会发生这种情况,因为这里没有真正的模式。在 FF 中,authError 随机给出一个误报,在 IE8 中,它只是一直显示。
有人可能会争辩说,出于某种原因,在 authError 消息被“开始”显示后检查用户权限。即使已显示错误消息,也会导致正确访问。我已经检查过页面的加载时间是否与它有关,但似乎并非如此。
周围是否有用户知道此问题的原因可能是什么?提前致谢!
最佳答案
我不完全确定为什么会这样,我不知道您是否能够解决您的问题。但是,我也在运行 ACL 并且遇到了类似的问题,我想我会在这里发布它并希望对某人有所帮助。
我有一个 Articles Controller ,我需要公开 index
和 view
操作。不管我做什么,都没有用。我仍然会收到相同的 not authorized 错误
。经过无数个不眠之夜的尝试,我发现,虽然我请求的是 view
操作,但在 view 操作中引用的任何其他操作,如 getRelated
或 getComments
也必须添加。
问题已解决,至少我是这么认为的。但是,间歇性地,错误会一次又一次地弹出。同样的问题,同样的错误。现在,我可以访问 View 操作但不能访问 Index,尽管 $this->Auth->allow
经过更多的摸索之后,我发现我必须对我的类别 Controller 做同样的事情。在此 Controller 中,我创建了一个 getRelated
操作,该操作将根据文章的类别检索与特定文章相关的所有文章。
一旦我这样做,现在我所有的问题都消失了,我也没有遇到过类似的问题。现在我可以真正专注于项目的其他部分。
关于php - CakePHP:ACL 的误报 authError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7593910/