Я пытаюсь заставить FOSUserBundle и HWIOAuth работать вместе для обработки аутентификации двух типов пользователей: представителей и стажеров. Представители начнут использовать HWIOAuth и будут использовать Salesforce и внутренний FOSUserBundle.
Я пытаюсь установить все, но у меня проблемы, потому что Symfony выбрасывает эту ошибку, когда я пытаюсь получить доступ к маршрутам /login-salesforce
или /admin
.
InvalidConfigurationException в строке BaseNode.php 313: неверная конфигурация для пути «security.firewalls.admin_area»: check_path «/ login_check» для метода входа «form_login» не соответствует шаблону брандмауэра «^ / admin».
Это содержимое файла security.yml
:
security: encoders: FOS\UserBundle\Model\UserInterface: sha512 role_hierarchy: ROLE_REPRESENTATIVE: [ROLE_USER] ROLE_ADMIN: [ROLE_REPRESENTATIVE, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] providers: fos_userbundle: id: fos_user.user_provider.username_email firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false #this is the secured area accessed through web browser and only internals are allowed to login admin_area: pattern: ^/admin anonymous: ~ form_login: provider: fos_userbundle csrf_provider: form.csrf_provider login_path: /login check_path: /login_check post_only: true always_use_default_target_path: true target_path_parameter: _target_path use_referer: false failure_path: null failure_forward: false logout: path: fos_user_security_logout target: / #this is the public area accessed by/from iOs app and only users registered at Salesforce as rep can login rep_area: methods: [GET, POST] pattern: ^/ anonymous: true logout: true logout: path: /logout target: / oauth: resource_owners: salesforce: "/login/check-salesforce" login_path: /login failure_path: /login oauth_user_provider: service: pdi_salesforce.oauth_user_provider access_control: - { path: ^/reptool, roles: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/admin, roles: ROLE_SUPER_ADMIN }
С HWIOAuth
я получил все настройки, я думаю (может поделиться, если нужно кем-то). Это содержимое файла routing.yml
:
#HWIOAuthBundle hwi_oauth_redirect: resource: "@HWIOAuthBundle/Resources/config/routing/redirect.xml" prefix: /connect hwi_oauth_login: resource: "@HWIOAuthBundle/Resources/config/routing/login.xml" prefix: /login salesforce_login: pattern: /login/check-salesforce #PDOne pd_one: resource: "@PDOneBundle/Controller/" type: annotation prefix: / template: resource: "@TemplateBundle/Controller/" type: annotation prefix: / #FOSUserBundle fos_user: resource: "@FOSUserBundle/Resources/config/routing/all.xml" #SonataAdmin admin: resource: '@SonataAdminBundle/Resources/config/routing/sonata_admin.xml' prefix: /admin _sonata_admin: resource: . type: sonata_admin prefix: /admin
Что еще мне не хватает? Кто-нибудь может заставить этих двух работать вместе и может поделиться своей работой, чтобы сделать это?
Hohoho проблема здесь
admin_area: pattern: ^/admin anonymous: ~ form_login: provider: fos_userbundle csrf_provider: form.csrf_provider login_path: /admin/login check_path: /admin/login_check post_only: true always_use_default_target_path: true target_path_parameter: _target_path use_referer: false failure_path: null failure_forward: false logout: path: fos_user_security_logout target: /
Для параметра login_path
и check_path
необходимо иметь /admin
спереди.