2012-03-08 2 views
10

Я использую JMSI18nRoutingBundle для маршрутизации переводов, с пользовательской конфигурацией, которая не является без префикса для всех маршрутов:Безопасность Symfony2 при использовании маршрутизации i18n?

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

www.example.com/contatti 
www.example.com/contact 

Это работает нормально, А как этот пакет. Я не должен разрабатывать административную часть проекта, конечно, защищая его. Я застрял в конфигурации системы безопасности (выдержка):

# app/config/config.yml 
security: 
    firewalls: 
     secured_area: 
      pattern: ^/ 
      anonymous: ~ 
      form_login: 
       login_path: /login 
       check_path: /login_check 

login_path статически определяется с помощью security.yml. Итак, как я должен указывать правильный логин (локализованный)? Предполагая, что форма является accessibile с помощью:

www.example.com/accesso 
www.example.com/login 
+1

Используйте имя пути, например fos_user_login, которое определяет как/accesso, так и/login вместо/login в вашей конфигурации безопасности (login_path: fos_user_login). –

ответ

4

Как Wojciech Jasiński уже упоминалось в комментариях, вы должны использовать название маршрута вместо шаблона.

Просто, чтобы принести свет ...
Вы должны определить маршрут

gremo_login_path: 
    pattern: /login 

... и использовать его в security.yml

security: 
    firewalls: 
     secured_area: 
      pattern: ^/ 
      anonymous: ~ 
      form_login: 
       login_path: gremo_login_path 
       check_path: /login_check 

Смотрите также вопросы, связанные:
https://github.com/schmittjoh/JMSI18nRoutingBundle/issues/7
https://github.com/symfony/symfony/pull/3791/files

Смежные вопросы