【发布时间】:2015-11-08 11:51:06
【问题描述】:
在一个 SF2 经典应用程序中,我如何禁用表单登录 CSRF 仅用于开发环境?
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
目的是通过包含security_test 覆盖安全配置来取消设置csrf_provider:
config_dev.yml:
imports:
- { resource: config.yml }
- { resource: security_dev.yml }
我无法将csrf_provider 设置为 null 或 false,因为 SF2 不会接受这些值。
但有了这个包含,关键就一直存在。
所以问题可能更笼统:我如何才能完全覆盖包含另一个 yaml 的配置数组?
提前致谢,
JM
【问题讨论】: