我创建了一个自定义 Symfony 执行过滤器,通过扩展 sfFilter 类来管理 POST 请求的完整性。过滤器工作正常,但有时我需要禁用它,事实是在 filters.yml 文件中的过滤器定义中指定的参数条件(见下文)不起作用。
# filters.yml
rendering: ~
security: ~
SSL:
class: SSLFilter
condition: %APP_ENABLE_SSLFILTER%
integrity:
class: IntegrityFilter
param:
integrity_header: x-integrity-cnonce
condition: %APP_ENABLE_INTEGRITYCHECK%
cache: ~
execution: ~
如您所见,IntegrityFilter 的条件要求 app.yml 文件中的配置条目 ENABLE_INTEGRITYCHECK 为 ON 才能执行过滤器。
# app.yml
all:
sf_guard_plugin:
algorithm_callable: md5
success_signout_url: /
success_signin_url: /
enable_sslfilter: off
# Enables de IntegrityFilter check
enable_integritycheck: off
好吧,事情是它不起作用,因为我使用脚本来启用/禁用某些设置以及其他任务,并且没有禁用它。有趣的是,启用/禁用两个 YAML 文件中显示的 SSL 过滤器都可以正常工作。有任何想法吗...?