我有一个Cakephp 3.6.13项目,其中启用了DebugKit(3.16.5)和Authorization(1.0.0)插件(以及Authentication 1.0.1插件)。
DebugKit栏未在开发中加载,服务器返回:“ 对/debug-kit/toolbar/5b7dae82-9c94-48df-a16b-fbf13bd97045
的请求未应用任何授权检查。”这很有意义,但是我该怎么办?是否收到对DebugKit的请求以传递授权通知,从而影响网站其余部分的授权?
使用RequestPolicy example处理插件=== DebugKit请求,但是不再授权我的公共操作(使用skipAuthorization定义),或者更确切地说,我不知道如何授权它们。 / p>
答案 0 :(得分:0)
如ndm所建议,当请求不是针对DebugKit插件时,我有条件地添加了Authorization Middleware。我将此添加到了Application.php中间件函数中:
$auth = new AuthorizationMiddleware($this);
$middlewareQueue
->add(function (ServerRequestInterface $request, ResponseInterface $response, callable $next) use ($auth) {
if ($request->getParam('plugin') !== 'DebugKit') {
return $auth($request, $response, $next);
}
return $next($request, $response);
});
不确定这是否是推荐的方法,但似乎可行。