5

私はSymfony2にROLE_ADMINとROLE_PARTNERの2つの役割を持つアプリケーションを持っています。また、いくつかの公開ページがあります。すべての公開ページはURL「/public/」で始まります。これらの公開アイテムを除くすべてのアプリケーションを保護したいと思います。

私の現在の構成:

access_control:
    - { path: /.*, role: ROLE_PARTNER|ROLE_ADMIN }
    - { path: /public/.*, role: IS_AUTHENTICATED_ANONYMOUSLY }

しかし、それは間違って動作します(ループリダイレクト)。

4

2 に答える 2

9

順序を変更します。

access_control:
    - { path: ^/public/, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/, role: ROLE_PARTNER|ROLE_ADMIN }

2番目のオプションは、パブリックセクションのセキュリティを完全にオフにすることです。

firewalls:
    public:
        pattern: ^/public/
        security: false
于 2012-09-03T14:32:25.267 に答える
3

追加:

- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }

http://symfony.com/doc/current/book/security.html#using-a-traditional-login-formの「一般的な落とし穴」を参照してください。

于 2012-09-03T14:29:54.113 に答える