2012-03-22 3 views
2

Я получил приложение, у которого Sonata User bundle и Sonata Admin bundle, но когда я войти в систему с Sonata User пачке, и после того, как я стараюсь, чтобы перейти к странице администратора, я должен сделать войдите снова,Войти Жека то же login_check пачке соната пользователя и Sonata админ пачке

Некоторые знают, как неблагодарный и, только имеет один Войти

Спасибо за любые советы !!

ответ

2

Ну, я нашел решение, я поставил тот же check_path и login_path в администратора брандмауэра, которые принимают по умолчанию в основного брандмауэра, Здесь я делюсь код в security.yml:

# -> пользовательский брандмауэр для админки в URL

admin: 
     pattern:  /(.*) 
     fr3d_ldap:  
      check_path:  /login_check 
     form_login: 
      provider:  fos_userbundle 
      login_path:  /login 
      use_forward: false 
      check_path:  /login_check 
      failure_path: null 
      default_target_path: /admin/ 
     logout: 
      path:   /logout 
     anonymous: true 

# -> конца пользовательской конфигурация

# УСПЕШНОЕ область Войти для стандартных пользователей

main: 
     pattern:  .* 
     fr3d_ldap:  ~ 
     form_login: 
      always_use_default_target_path: true 
      default_target_path:/

Я надеюсь, что это поможет кому-то !!

+0

У меня была такая же проблема. Это потому, что в документации SonataAdmin они по умолчанию предоставляют другой брандмауэр для администратора. Но [Документация по безопасности Symfony2] (http://symfony.com/doc/current/book/security.html#using-a-traditional-login-form) фактически говорит о том, что «Несколько брандмауэров не разделяют контекст безопасности». Вот почему вам нужно использовать только один брандмауэр, если вам нужна глобальная аутентификация (что, по моему мнению, является наиболее распространенным случаем) –

0

Когда вы входите в систему с брандмауэром «admin», брандмауэр «main» не знает о вас, потому что SESSION пишет с префиксом по умолчанию (имя брандмауэра). Вы должны использовать 1 Contex для различных брандмауэров (в приложение/Config/security.yml):

admin: 
     pattern: /admin(.*) 
     context: user 
     form_login: 
     ..... 

main: 
     pattern: ^/ 
     context: user 
     form_login: 
     ..... 

контекст: Пользователь