我收到了一个应用程序,他拥有Sonata User bundle
和Sonata Admin bundle
,但是当我用 登录Sonata用户包时,在尝试转到管理页面后,我必须做再次登录,使用相同的login_check登录Sonata用户包和Sonata管理包
有些人知道如何忘恩两者只是有一个登录
感谢任何意见!
我收到了一个应用程序,他拥有Sonata User bundle
和Sonata Admin bundle
,但是当我用 登录Sonata用户包时,在尝试转到管理页面后,我必须做再次登录,使用相同的login_check登录Sonata用户包和Sonata管理包
有些人知道如何忘恩两者只是有一个登录
感谢任何意见!
嗯,我找到了解决办法,我把同样的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#
登录defaut面积!
当您使用防火墙“admin”登录时,防火墙“main”不知道您,因为SESSION使用默认前缀(防火墙的名称)写入。 您需要使用1个CONTEX不同的防火墙(在app /配置/ security.yml):
admin:
pattern: /admin(.*)
context: user
form_login:
.....
main:
pattern: ^/
context: user
form_login:
.....
方面:用户
我有同样的问题。这是因为在SonataAdmin文档中,默认情况下,他们为管理员提供了不同的防火墙。但[Symfony2安全文档](http://symfony.com/doc/current/book/security.html#using-a-traditional-login-form)实际上告诉“多个防火墙不共享安全上下文”。这就是为什么如果您需要全局身份验证(我认为这是最常见的情况),您只需使用一个防火墙, – 2012-07-02 14:07:15