관리자와 표준 사용자가 각각 별도의 보안 공급자로 처리되는 시스템이 있습니다. 관리자가 기본 사이트에 로그인하지 않은 경우 주 사이트의 방화벽 뒤에있는 파일이나 이미지에 관리자가 액세스 할 수 없기 때문에 관리 페이지에 문제가 발생했습니다.symfony 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의 우리 버전). 궁극적으로 우리는 @ Adminovser와 같은 역할을 대신 사용하여 'AdminUser'를 버리고 결국 별도의 공급자를 필요로하지 않는다는 것을 깨달았습니다. – Kaivosukeltaja