2
在SF2经典应用程序中,如何禁用仅用于开发环境的表单登录CSRF?禁用CSRF仅适用于Symfony2中的开发环境
config.yml:
imports:
- { resource: parameters.yml }
- { resource: security.yml }
framework:
#esi: ~
translator: { fallback: en_US }
secret: %secret%
router:
resource: "%kernel.root_dir%/config/routing.yml"
strict_requirements: "%kernel.debug%"
form: true
csrf_protection: true
security.yml:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/user/(login|reset-request|send-email|check-email)$
provider: chain_provider
anonymous: true
main:
pattern: ^/
provider: chain_provider
form_login:
csrf_provider: form.csrf_provider
check_path: my_security_check
login_path: my_security_login
logout:
path: my_security_logout
remember_me:
key: %secret%
name: MYKEY
lifetime: 3600
anonymous: false
security_dev.yml:
firewalls:
main:
form_login:
check_path: my_security_check
login_path: my_security_login
目的是通过重写与安全配置取消设置csrf_provider
包含security_test
:
config_dev.yml:
imports:
- { resource: config.yml }
- { resource: security_dev.yml }
我不能设置csrf_provider
为空或假,因为SF2不会接受这些值。 但是,随着这个包容,关键始终存在。
所以这个问题可能会更一般:我如何完全覆盖配置数组与另一个yaml包含?
由于通过提前
JM
我真正需要的是禁用CSRF为我的测试环境,因为试机的时候是超载了我的一些贝哈特功能失败,因为CSRF的,我想在我的问题更简单)。您的解决方案是禁用整个应用程序的CSRF,而不是唯一的登录表单,但我会试一试。谢谢。 – jmleroux
你的问题是*在一个SF2的经典应用程序中,如何禁用仅用于开发环境的表单登录CSRF?*没有关于登录表单的信息。 ;) –
也许标题不够清楚。我想在“防火墙”部分“取消”登录表单的配置键“crsf_provider” – jmleroux