Symfony安全占位符


Symfony security placeholders

我想知道是否有可能在Symfony的security.yml配置中使用占位符。

我有以下安全措施。yml:

order_area: pattern: ^/{_checkout}/ anonymous: ~ provider: ehv_customer security: true context: customer

我正在为多种语言构建一个结账流程,但我不想使用一种标准语言来处理路由,例如/checkout/1、/checkout/2。结账由Symfony防火墙保护,只允许客户登录。

有没有一种方法可以定义一个占位符来处理每种语言的安全防火墙路由。以下链接是该问题的另一个示例,但对我不起作用:Symfony-2>登录&使用占位符注销路由。我也可以使用前缀,但这是我最后的选择。

也许可以通过PHP而不是YML或XML添加防火墙规则?

Symfony版本:2.5.3

您可能需要了解使用_locale参数的Symfony本地化组件。它可能在security.yml模式中可用,但您必须进行测试才能确定。

在我的评论中,我最终通过创建一个处理整个网站的防火墙规则来解决这个问题:

customer_area: pattern: ^/.* anonymous: ~ provider: ehv_customer security: true context: customer

应首先说明可能与此规则冲突的其他防火墙规则。为了处理登录/注销表单并限制网站的某些部分,我使用了控制器和security.context服务。