0

2 つの異なるセキュア ゾーンを作成する必要があります。1 つのゾーンはユーザー用で、もう 1 つは管理者用です。ユーザーとして認証され、/admin ページに移動すると、アプリケーションはユーザーを /admin/login にリダイレクトする必要があります。これは、1 人の男性が当社の Web サイトで 2 回 (ユーザーとして、および管理者として) 認証されることを意味します。

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

ルーティング.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

これで 2 回認証できるようになりましたが、管理ゾーンからログアウトすると、システムによってユーザーとしてもログアウトされます。どうすればこの問題を解決できますか? そして私の英語でごめんなさい。

4

1 に答える 1

0

複数のロールを追加し、ファイアウォールを制限して、たとえば ROLE_ADMIN を持つユーザーのみが通過できるようにすることができます。Symfony2 の公式ドキュメントには、すばらしい例が示されています。複数のファイアウォール設定を作成する方法について

于 2013-04-30T13:38:10.870 に答える