2013-04-30 80 views
0

我需要创建两个不同的安全区域。一个区域用于用户,另一个区域用于管理员。如果您是以用户身份进行身份验证并转到/ admin页面应用程序,则必须将您重定向到/ admin/login。这意味着一个人可以在我们的网站上进行两次认证 - 如用户和管理员。如何在Symfony上创建两个不同的安全区域?

security.yml: 
    firewalls: 
     front_end: 
      pattern: ^/security  
      provider: users 
      form_login: 
       check_path: /security/login_check 
       login_path: /login 
      logout: 
       path: /security/logout 
       target: /login 

     back_end: 
      pattern: ^/admin   
      provider: administrators 
      form_login: 
       check_path: /admin/login_check 
       login_path: /admlogin    
      logout: 
       path: /admin/logout 
       target: /admlogin 

的routing.yml:

security_homepage: 
     pattern: /security 
     defaults: { _controller: SecureBundle:Default:index } 
    login: 
     pattern: /login 
     defaults: {_controller: SecureBundle:Default:login} 
    login_check: 
     pattern: /security/login_check 
    logout: 
     pattern: /security/logout 
     defaults: { _controller: SecureBundle:Default:logout } 


    admin: 
     pattern: /admin 
     defaults: { _controller : SecureBundle:Default:admin } 
    admin_login: 
     pattern: /admlogin 
     defaults: {_controller: SecureBundle:Default:admlogin} 
    admin_login_check: 
     pattern: /admin/login_check 
    admin_logout: 
     pattern: /admin/logout 

现在我可以验证的两倍,但如果我从管理区域退出,系统注销我的用户太多。我如何解决这个问题?抱歉我的英语。

+1

第一个问题是'你为什么要这样做?'如果他们是管理员,那么以管理员身份登录它们意味着有一段时间你不希望他们成为管理员。 – Lighthart 2013-04-30 18:38:12

回答

0

您可以添加multiple roles并限制您的防火墙,因此只有拥有例如ROLE_ADMIN可以通过。官方Symfony2文档给出了很好的例子imho。关于如何创建多个防火墙设置

相关问题