Просто убедитесь, что вы определили маршруты для всех них, которые используют переменную locale, и безопасность, кажется, подхватывает их автоматически. Нет необходимости учитывать локаль в конфигурации безопасности.
Вот пример из моего проекта.
Выдержка из security.yml
:
login:
pattern: /(game|admin)/login$
security: false
admin:
pattern: /admin/
form_login:
check_path: /admin/login_check
login_path: _admin_login
logout:
path: _admin_logout
target: _home
game:
pattern: /game/
form_login:
check_path: /game/login_check
login_path: _game_login
logout:
path: _game_logout
target: _home
Выдержка из routing.yml
:
BrowserMMOSecurityBundle:
resource: "@BrowserMMOSecurityBundle/Controller/"
type: annotation
prefix: /{_locale}/
defaults: { _locale: en }
requirements:
_locale: en|fr
_game_login_check:
pattern: /game/login_check
_admin_login_check:
pattern: /admin/login_check
_admin_logout:
pattern: /{_locale}/admin/logout
requirements:
_locale: en|fr
_game_logout:
pattern: /{_locale}/game/logout
requirements:
_locale: en|fr
Приведенный выше конфиг работает на меня. Стоит также отметить, что маршруты _admin_login
и _game_login
определены в аннотациях моего класса SecurityController
.