【问题标题】:Symfony3: The service "security.firewall.map.context.main" has a dependency on a non-existent service "security.csrf.token_manager"Symfony3:服务“security.firewall.map.context.main”依赖于不存在的服务“security.csrf.token_manager”
【发布时间】:2016-10-11 09:16:22
【问题描述】:

Symfony 3.0.7

我尝试全局禁用 csrf 保护:

framework:
    csrf_protection: false

然后我有例外:

Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException:服务“security.firewall.map.context.main”依赖于不存在的服务“security.csrf.token_manager”。

但如果我尝试直接在代码中使用服务“security.csrf.token_manager”,它就会存在。

完整的错误回溯:

Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException:服务“security.firewall.map.context.main”依赖于不存在的服务“security.csrf.token_manager”。

/var/www/studio.lc/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php:58 /var/www/studio.lc/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php:42 /var/www/studio.lc/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php:53 /var/www/studio.lc/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php:51 /var/www/studio.lc/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php:42 /var/www/studio.lc/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php:36 /var/www/studio.lc/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/Compiler.php:104 /var/www/studio.lc/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/ContainerBuilder.php:545 /var/www/studio.lc/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:477 /var/www/studio.lc/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:117 /var/www/studio.lc/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php:146 /var/www/studio.lc/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Test/WebTestCase.php:33 /var/www/studio.lc/src/Studio/Bundle/AdminBundle/Tests/Controller/SecuredAreaControllerWebTestCase.php:21

我该如何解决?

【问题讨论】:

  • 你解决了吗?我有同样的问题

标签: symfony


【解决方案1】:

这是 config.yml 中的以下语法:

 csrf_protection: 
     enabled: false

如果您只是转到您的 security.yml 文件并从 form_login 指令中删除 csrf_provider 或 csrf_token_generator。

【讨论】:

    猜你喜欢
    • 2022-11-10
    • 2017-03-21
    • 2019-09-28
    • 2015-05-29
    • 2018-07-22
    • 2019-07-08
    • 2018-01-16
    • 2018-05-18
    • 1970-01-01
    相关资源
    最近更新 更多