使用i18n路由时的Symfony2安全性?

gre*_*emo 10 symfony

我正在使用JMSI18nRoutingBundle进行路由转换,使用自定义配置,这不是所有路由的前缀:

# app/config/config.yml
jms_i18n_routing:
  default_locale: it
  locales: [it, en]
  strategy: custom

www.example.com/contatti
www.example.com/contact
Run Code Online (Sandbox Code Playgroud)

这很好用,就像捆绑一样.不是我必须开发项目的管理部分,当然是保护它.我陷入安全配置(摘录):

# app/config/config.yml
security:
    firewalls:
        secured_area:
            pattern:    ^/
            anonymous: ~
            form_login:
                login_path:  /login
                check_path:  /login_check
Run Code Online (Sandbox Code Playgroud)

login_path是静态定义使用security.yml.那么,我应该如何指定正确的登录(本地化)路径?假设form是accessibile使用:

www.example.com/accesso
www.example.com/login
Run Code Online (Sandbox Code Playgroud)

Vit*_*ian 4

正如Wojciech Jasi\xc5\x84ski在评论中已经提到的,您应该使用路由名称而不是模式。

\n\n

只是为了带来一些光明...
\n你应该定义你的路线

\n\n
gremo_login_path:\n    pattern: /login\n
Run Code Online (Sandbox Code Playgroud)\n\n

...并将其用于security.yml

\n\n
security:\n    firewalls:\n        secured_area:\n            pattern:    ^/\n            anonymous: ~\n            form_login:\n                login_path:  gremo_login_path\n                check_path:  /login_check\n
Run Code Online (Sandbox Code Playgroud)\n\n

另请参阅相关问题:
\n https://github.com/schmittjoh/JMSI18nRoutingBundle/issues/7
\n https://github.com/symfony/symfony/pull/3791/files

\n