2013-04-30 51 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。關於如何創建多個防火牆設置

相關問題