【问题标题】:Disable security firewall in test environment on Symfony2在 Symfony2 上的测试环境中禁用安全防火墙
【发布时间】:2012-07-26 18:16:12
【问题描述】:

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

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

但是,这不会禁用安全性。有什么想法可以在测试环境中完全禁用某个防火墙的安全性吗?

【问题讨论】:

标签: php symfony


【解决方案1】:

不要更改 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】:

    正如在类似主题 turn off firewall when developing 中提到的,在 Your security.yml 中添加以下规则:

    firewalls:
        dev:
            pattern:  ^/
            security: false
    

    【讨论】:

      【解决方案3】:

      可能的解决方案

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

      imports:
          - { resource: security.yml }
      

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

      【讨论】:

      • 问题是:我正在使用带有注释安全角色的 JMSSecurityExtraBundle。我收到“安全上下文未填充令牌”。一直都是。
      • Valentas 的解决方案也禁用了产品防火墙。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-04
      • 2012-03-26
      • 1970-01-01
      • 2020-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多