2017-08-28 5 views
1

私はFOSUserBundleを持っています。ユーザがログインしていない場合はログインページに送信し、ROLE_ADMINその他の場合は/adminページにはアクセスできません。symfonyの役割によるアクセス制御

私は私のsecurity.ymlでこれを書く:

access_control: 
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/, role: IS_AUTHENTICATED_FULLY } 
    - { path: ^/admin, role: ROLE_ADMIN } 

が、現在は記録されたすべてのユーザーが/admin pageに行くことができ...

私は間違って理解していません。

答えて

3

てみ

- { path: ^/, role: IS_AUTHENTICATED_FULLY } 
    - { path: ^/admin, role: ROLE_ADMIN } 

- { path: ^/admin, role: ROLE_ADMIN } 
    - { path: ^/, role: IS_AUTHENTICATED_FULLY } 
4

ルールは、彼らがそのように書かれている順序で解析され、ユーザーが

認証された場合、

- { path: ^/, role: IS_AUTHENTICATED_FULLY } 

/下のすべての領域へのアクセスを許可しますあなたは、最後の2つのルールを切り替える必要があり、すべてが確実になります期待どおりに動作します。

0

を変更するだけで削除

- { path: ^/, role: IS_AUTHENTICATED_FULLY } 
関連する問題