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

时间:2012-07-26 18:16:12

标签: php symfony

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

security:
    firewalls:
        web:
            pattern: .*
            security: false
            anonymous: ~

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

3 个答案:

答案 0 :(得分:5)

可能的解决方案

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

imports:
    - { resource: security.yml }

并将其单独添加到config_dev.ymlconfig_prod.yml。在这种情况下,config_test.yml将不会导入安全配置,因此,您将无法在测试环境中使用安全性。

答案 1 :(得分:5)

请勿更改 security.yml ,而是制作 ad hoc 规则以进行测试。

您必须在 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

注意

请注意config_test.yml导入config_dev.yml,导入config.yml。因此,您必须覆盖测试配置文件上的所有基本配置才能使其正常工作。

答案 2 :(得分:2)

正如类似主题turn off firewall when developing中所述,在您的security.yml中添加了以下规则:

firewalls:
    dev:
        pattern:  ^/
        security: false