管理者と標準のユーザがそれぞれのセキュリティプロバイダによって処理されるシステムがあります。管理者は、メインサイトにもサインインしていない限り、メインサイトのファイアウォールの背後にあるファイルやイメージにアクセスできないため、管理ページに問題が発生しています。symfony 2:2つの別々のプロバイダを持つファイアウォールされたルートへのアクセス
プロバイダに関係なく、すべての認証済みのユーザーと管理者が画像とファイルにアクセスできる必要があります。それらはより細かいアクセス制御を提供するコントローラを通じて提供されます。
複数のプロバイダを定義してルートへのアクセスを許可することはできますか?
は、ここに私たちの現在のsecurity.ymlのストリップダウンバージョンです:
security:
providers:
admin_user_db:
entity: { class: OurAdminUserBundle:AdminUser, property: username }
site_user_db:
entity: { class: OurSiteUserBundle:SiteUser, property: username }
firewalls:
admin_login:
pattern: ^/admin/login$
security: false
site_user_login:
pattern: ^/login
security: false
file_route:
pattern: ^/file
anonymous: ~
### We need to allow this route only for authorized users from
### either admin_user_db or site_user_db providers
admin_secured_area:
pattern: ^/admin
http_basic: ~
provider: admin_user_db
form_login:
check_path: /admin/login_check
login_path: /admin/login
logout:
path: /admin/logout
target:/
site_secured_area:
pattern: .*
http_basic: ~
provider: site_user_db
form_login:
check_path: /check_login
login_path: /login
failure_path: /login
failure_forward: false
logout:
path: /logout
target:/
答えをいただきありがとうございます。これらの手順で(私は構文が少し違っていたとは思いますが)、 "ChainProvider" Symfonyのバージョン)。最終的に私たちはシナリオでは別のプロバイダが本当に必要ではないことに気づいたので、@ AdminVserのような代わりに 'AdminUser'を削除し、ロールを使用することになりました。 – Kaivosukeltaja