使用相同的login_check Sonata用户捆绑包和Sonata管理包进行登录

时间:2012-03-22 19:42:27

标签: symfony symfony-sonata

我有一个拥有Sonata User bundleSonata Admin bundle的应用,但是当我登录时 Sonata User捆绑包,在我尝试进入管理页面后,我必须再次登录,

有些人知道如何两者兼顾,只需登录一次

感谢任何建议!!

2 个答案:

答案 0 :(得分:2)

我找到了解决方案,我将相同的check_pathlogin_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

# - >结束自定义配置

标准用户的#defaut登录区域

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

我希望这对某人有所帮助!!

答案 1 :(得分:0)

当您使用防火墙“admin”登录时,防火墙“main”不了解您,因为SESSION正在使用默认前缀(防火墙的名称)进行写入。 您需要为不同的防火墙使用1个上下文(在app / config / security.yml中):

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

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

context:user