我们有一个系统,管理员和标准用户由他们自己独立的安全提供商处理。这导致管理页面出现问题,因为管理员无法访问位于主站点防火墙后面的任何文件或图像,除非他们也登录到主站点。
所有经过身份验证的用户和管理员都需要可以访问图像和文件,而不管提供者是谁。它们通过一个控制器提供服务,该控制器提供更细粒度的访问控制。
是否可以定义多个提供者来允许访问路由?
这是我们当前 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: /