Symfony 使用相同的登录检查Sonata用户包和Sonata管理包登录

Symfony 使用相同的登录检查Sonata用户包和Sonata管理包登录,symfony,symfony-sonata,Symfony,Symfony Sonata,我有一个应用程序拥有Sonata用户包和Sonata管理包,但是当我使用 Sonata用户包,在我尝试进入管理页面后,我必须再次登录 有些人知道如何忘恩负义两者,只有一个登录 谢谢你的建议 我找到了解决方案,我将相同的检查路径和登录路径放在管理防火墙中,默认情况下在主防火墙中使用, 在这里,我共享security.yml中的代码: admin: pattern: /admin(.*) context: user form_login:

我有一个应用程序拥有
Sonata用户包
Sonata管理包
,但是当我使用 Sonata用户包,在我尝试进入管理页面后,我必须再次登录

有些人知道如何忘恩负义两者,只有一个登录


谢谢你的建议

我找到了解决方案,我将相同的
检查路径
登录路径
放在管理防火墙中,默认情况下在主防火墙中使用, 在这里,我共享security.yml中的代码:

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

main:
        pattern: ^/
        context: user
        form_login:
        .....
#->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: /

我希望这对某人有帮助

当您使用防火墙“admin”登录时,防火墙“main”不知道您的情况,因为会话正在使用默认前缀(防火墙名称)写入。 您需要为不同的防火墙使用1个contex(在app/config/security.yml中):

上下文:用户


我也有同样的问题。这是因为在SonataAdmin文档中,默认情况下,他们为管理员提供了不同的防火墙。但事实上,这说明“多个防火墙不共享安全上下文”。这就是为什么如果需要全局身份验证(我认为这是最常见的情况),就必须只使用一个防火墙的原因