CakePHP3.6-如何让DebugKit使用授权插件?

CakePHP3.6-如何让DebugKit使用授权插件?,cakephp,cakephp-3.0,Cakephp,Cakephp 3.0,我有一个Cakephp 3.6.13项目,启用了DebugKit(3.16.5)和授权(1.0.0)插件(以及身份验证1.0.1插件) DebugKit栏在开发中没有加载,服务器返回:“对/debug kit/toolbar/5b7dae82-9c94-48df-a16b-fbf13bd97045的请求没有应用任何授权检查。”这是有道理的,但我如何让对DebugKit的请求通过授权而不影响站点其余部分的授权 使用works for plugin===DebugKit请求,但是我的公共操作(使用s

我有一个Cakephp 3.6.13项目,启用了DebugKit(3.16.5)和授权(1.0.0)插件(以及身份验证1.0.1插件)

DebugKit栏在开发中没有加载,服务器返回:“对
/debug kit/toolbar/5b7dae82-9c94-48df-a16b-fbf13bd97045的请求没有应用任何授权检查。”这是有道理的,但我如何让对DebugKit的请求通过授权而不影响站点其余部分的授权


使用works for plugin===DebugKit请求,但是我的公共操作(使用skipAuthorization定义)不再被授权,或者更准确地说,我不知道如何授权它们。

正如ndm所建议的,当请求不针对DebugKit插件时,我有条件地添加了授权中间件。我在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);
    });

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

使用CakePHP 4.1将以下配置选项添加到app_local.php将导致DebugKit绕过策略并正常运行:

'DebugKit'=>[
“ignoreAuthorization”=>true
],

一个选项可能是在路由作用域上应用中间件,或者有条件地应用中间件,类似于此:。有条件地添加授权中间件有效。非常感谢。文档中提到此配置是适当的方式:
Configure::write('DebugKit.ignoreAuthorization',true)
@Yevgeniy这是真的,但它对我不起作用,至少在CakePHPV4中是这样。