由于通过 API 进行纯密码登录,我们最近将应用程序从 http 转移到了 https。
然而,既然这样做了,我们就遇到了黑洞的真正问题。Cake 似乎在我们的控制器中对 API 函数的任何“POST”进行了黑洞处理,尽管
$this->Security->validatePost = false;
在 AppController.php 中设置
我们使用的是 CakePHP 2.1.3 版
代码示例如下:
应用控制器.php:
function beforeFilter()
{
$this->Security->validatePost = false;
$this->Security->requireSecure();
}
SaleOrderController.php:
function beforeFilter()
{
parent::beforeFilter();
$this->Auth->allow('addApi'); // Allow access to the API without logging in.
}
发布到此 URL 会返回以下消息:“请求已被黑洞”
一旦我们可以让它工作(没有被黑洞),我们将对其进行调整,以便仅可以使用 validatePost = false 执行某些操作。但是,现在我们只想让系统正常工作。
注意:对操作的“GET”请求工作正常(不是黑洞)。
我在这里遗漏了一些简单的配置还是在工作中存在一些更深层次的问题?文档中的安全模块似乎有点少,从我的谷歌搜索来看,大多数人似乎通过执行与我相同的步骤来避免黑洞。