Я пытаюсь заставить FOSUserBundle и HWIOAuth работать вместе для обработки аутентификации двух типов пользователей: представителей и стажеров. Представители начнут использовать HWIOAuth и будут использовать Salesforce и внутренний FOSUserBundle.
Я пытаюсь установить все, но у меня есть проблемы, потому что Symfony выдает эту ошибку, когда я пытаюсь получить доступ к /login-salesforce
или же /admin
маршруты.
InvalidConfigurationException в строке 313 BaseNode.php: неверный
конфигурация для пути «security.firewalls.admin_area»: путь проверки
«/ 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
Что еще мне не хватает? Кто-нибудь здесь заставляет этих двоих работать вместе и может поделиться своей работой, чтобы сделать это?
Хохохо проблема тут
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
впереди.
Других решений пока нет …