0
在我的訪問控制中,我有一堆規則,但他們都沒有工作。我屬於一個沒有角色的組,我仍然可以訪問所有路線。我試圖在路徑的盡頭添加美元符號,但這並不奏效。我也嘗試重新排序路徑,但也失敗了。任何建議都會有幫助!Symfony2訪問控制不起作用
這裏是我的security.yml文件
security:
encoders:
FOS\UserBundle\Model\UserInterface: sha512
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
logout: true
anonymous: true
access_control:
- { path: ^/system/staff/add, roles: ROLE_ADD_STAFF }
- { path: ^/system/staff/edit, roles: ROLE_EDIT_STAFF }
- { path: ^/system/staff, roles: ROLE_VIEW_STAFF }
- { path: ^/system/profile/edit, roles: ROLE_USER }
- { path: ^/system/profile, roles: ROLE_USER }
- { path: ^/system/officer/add, roles: ROLE_ADD_OFFICER }
- { path: ^/system/officer/edit, roles: ROLE_EDIT_OFFICER }
- { path: ^/system/officer, roles: ROLE_VIEW_OFFICER }
- { path: ^/system/job/add, roles: ROLE_ADD_JOBS }
- { path: ^/system/job/edit, roles: ROLE_EDIT_JOBS }
- { path: ^/system/job, roles: ROLE_VIEW_JOBS }
- { path: ^/system/company/add, roles: ROLE_ADD_COMPANIES }
- { path: ^/system/company/edit, roles: ROLE_EDIT_COMPANIES }
- { path: ^/system/company, role: ROLE_VIEW_COMPANIES }
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/system, roles: ROLE_USER }
例如我當前組不具備ROLE_EDIT_STAFF
角色然而,我仍然能夠訪問路徑。
感謝您的建議,但沒有解決問題 – zachstarnes
我不確定你的意思。 FOSUserBundle處理大多數正在發生的事情lol使用命令行命令創建角色,並在創建用戶時在該位置選擇角色。數據庫中的關聯全部正確 – zachstarnes
用戶是具有多個角色的組的一部分。當我去檢查數據庫時,我所屬的組沒有'ROLE_EDIT_STAFF'角色 – zachstarnes