2012-03-22 64 views

回答

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 

# - >结束自定义配置

标准用户

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

我希望这有助于有人0#

登录defaut面积!

+0

我有同样的问题。这是因为在SonataAdmin文档中,默认情况下,他们为管理员提供了不同的防火墙。但[Symfony2安全文档](http://symfony.com/doc/current/book/security.html#using-a-traditional-login-form)实际上告诉“多个防火墙不共享安全上下文”。这就是为什么如果您需要全局身份验证(我认为这是最常见的情况),您只需使用一个防火墙, – 2012-07-02 14:07:15

0

当您使用防火墙“admin”登录时,防火墙“main”不知道您,因为SESSION使用默认前缀(防火墙的名称)写入。 您需要使用1个CONTEX不同的防火墙(在app /配置/ security.yml):

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

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

方面:用户