問:我想在我的Symfony2的網站,將只提供給了用戶ROLE_ADMIN創建一個管理員的部分的Symfony2 - 2防火牆,1個登錄
我不知道我是否應該創建一個新的防火牆或使用acces控件。我試圖一起做這兩件事,但所有用戶仍然可以訪問管理員部分。
目前所有的網站都在安全區域的防火牆和我想要的匿名頁面被訪問控制釋放。
這裏是我的security.yml
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
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_email
my_facebook_provider:
id: my_user.facebook_provider
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/login$
security: false
context: login
admin:
pattern: /admin/
form_login:
provider: fos_userbundle
check_path: /login_check
login_path: /login
anonymous: ~
secured_area:
pattern: ^/
anonymous: ~
form_login:
login_path: /login
check_path: /login_check
default_target_path: tk_group_homepage
provider: fos_userbundle
remember_me: true
csrf_provider: form.csrf_provider
remember_me:
key: %secret%
lifetime: 31536000 # 365 days in seconds
fos_facebook:
app_url: "%api_facebook_name%"
server_url: "%api_facebook_server%"
check_path: /login_facebook_check
default_target_path: tk_user_homepage
provider: my_facebook_provider
logout:
path: fos_user_security_logout
target: fos_user_security_login
invalidate_session: false
context: login
access_control:
- { path: ^/$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/new, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/invitation, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/(subscribe|about|blog|press|contact), role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: IS_AUTHENTICATED_REMEMBERED }
- { path: ^/admin/, role: ROLE_ADMIN }
我還想着在控制器檢查是用戶具有管理員角色,如果沒有拋出異常,因爲我的管理部分只有一個頁面目前。但我不知道這是否是最佳做法,如果我想擴展我的管理部分,這可能會成爲問題。
我不想創建一個新的用戶提供者,因爲我們只有兩個管理員。
非常感謝你, 朱
感謝您的回答,但訪問控制不適用於我的情況,這是我的問題。放置 - {path:^/admin /,role:ROLE_ADMIN}不會阻止普通用戶訪問/ admin url。 –
如果刪除尾部斜槓會發生什麼情況?所以把'^/admin /'改成'^/admin'? – adamziel
它不會改變任何東西.. –