在Symfony2上的测试环境中禁用安全防火墙

vin*_*nux 7 php symfony

我正在尝试为Symfony2中的测试环境禁用安全防火墙,但我没有运气.这是我在config_test.yml中的内容:

security:
    firewalls:
        web:
            pattern: .*
            security: false
            anonymous: ~
Run Code Online (Sandbox Code Playgroud)

但是,这并不是禁用安全性.任何想法如何在测试环境中完全禁用某个防火墙的安全性?

小智 6

正如在类似主题中提到的,在您的 security.yml 中开发放置以下规则时关闭防火墙

firewalls:
    dev:
        pattern:  ^/
        security: false
Run Code Online (Sandbox Code Playgroud)


Vit*_*ian 5

可能解决方案

您可以config.yml从这部分代码中提取:

imports:
    - { resource: security.yml }
Run Code Online (Sandbox Code Playgroud)

并将其单独放入config_dev.ymlconfig_prod.yml.在这种情况下,config_test.yml不会导入安全配置,因此,您将在测试环境中没有安全性.


sen*_*nza 5

Do not change security.yml, instead make an ad hoc rule for testing purposes.

You have to disable all the security firewalls configuration on your config_test.yml:

  imports:
      - { resource: config_dev.yml }

  framework:
      test: ~
      session:
          storage_id: session.storage.mock_file
      profiler:
          collect: false

  web_profiler:
      toolbar: false
      intercept_redirects: false

  swiftmailer:
      disable_delivery: true

  security:
      firewalls:
          dev:
              pattern:  ^/
              security: false
Run Code Online (Sandbox Code Playgroud)

Note

介意config_test.yml进口config_dev.yml,即进口config.yml。因此,您必须覆盖测试配置文件上的所有基本配置,以使其起作用。