我想我並不完全理解symfony的防火牆和訪問控制的概念,但這裏是我的理解。Symfony2防火牆不阻止訪問
我已經安裝並正確配置了FOSUserBundle。
我創造了一些角色:
role_hierarchy:
ROLE_COACH: [ROLE_USER]
ROLE_EDITOR: [ROLE_USER]
ROLE_PREMIUM_COACH : [ROLE_USER, ROLE_COACH]
ROLE_ADMIN: [ROLE_USER, ROLE_SONATA_ADMIN, ROLE_COACH, ROLE_EDITOR, ROLE_PREMIUM_COACH]
ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
我想阻止其他人訪問該網址/儀表板,如果他們還沒有登錄,因此,如果他們沒有作用ROLE_USER。
這裏是我的防火牆:
firewalls:
# -> custom firewall for the admin area of the URL
admin:
pattern: /admin(.*)
form_login:
provider: fos_userbundle
login_path: /admin/login
use_forward: false
check_path: /admin/login_check
failure_path: null
logout:
path: /admin/logout
anonymous: true
# -> end custom configuration
# defaut login area for standard users
main:
pattern: .*
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
login_path: /login
use_forward: false
check_path: /login_check
failure_path: null
logout: true
anonymous: true
這是我下ACCESS_CONTROL補充說:
- { path: ^/dashboard, role: [ROLE_USER]}
- { path: ^/dashboard/blog, role: [ROLE_EDITOR]}
我可以訪問網頁/儀表板即使我沒有連接,我不希望出現這種情況可能。我錯了什麼?
匿名:真的是罪魁禍首 –
我應該怎麼辦呢?當你指定一條路線必須有一個角色時,是不是假設被覆蓋? – CoachNono
嘗試爲您的儀表板創建另一個防火牆。 –