CakePHP 3.6-如何使DebugKit与授权插件配合使用?

时间:2018-11-06 22:18:26

标签: cakephp cakephp-3.0

我有一个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>

1 个答案:

答案 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);
    });

不确定这是否是推荐的方法,但似乎可行。