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/vender/symfony/symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php:58/var/www/studio.lc/vender/symfony/symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php:42/var/www/studio.lc/vender/symfony/symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php:53/var/www/studio.lc/vender/symfony/symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php:51/var/www/studio.lc/vender/symfony/symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php:42/var/www/studio.lc/vender/symfony/symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php:36/var/www/studio.lc/vender/symfony/symfony/Component/DependencyInjection/Compiler/Compiler.php:104/var/www/studio.lc/vender/symfony/symfony/src/symfony/Component/DependencyInjection/ContainerBuilder.php:545/var/www/studio.lc/vender/symfony/symfony/src/symfony/Component/HttpKernel/Kernel.php:477/var/www/studio.lc/vender/symfony/symfony/src/symfony/Component/HttpKernel/Kernel.php:117/var/www/studio.lc/vvendor/symfony/symfoy/Bundle/FrameworkBundle/Test/KernelTestCase.php:146/var/www/studio.lc/vender/symfony/symfony/src/symfony/Bundle/FrameworkBundle/Test/WebTestCase.php:33/var/www/studio.lc/src/studio/Bundle/AdminBundle/Tests/Controller/SecuredReaControllerWebTestCase.php:21
如何修复它?
这是config.yml中的以下语法:
csrf_protection:
enabled: false
如果您只是转到security.yml文件并从form_login指令中删除csrf_provider或csrf_token_generator。