Настройка безопасности с помощью FOS для EasyAdminBundle

Я играю с EasyAdminBundle и теперь пытаюсь настроить безопасность через форму входа в систему из FOS UserBundle. Однако на самом деле это не работает. Вместо успешного входа в систему меня всегда перенаправляют на «failure_path» в файле security.yml. Что я хочу:

  1. нажмите / easy-admin
  2. получить перенаправление на стандартную форму входа в систему FOS /easy-admin/login
  3. войти с моим именем пользователя и паролем (я знаю, что учетные данные в порядке)
  4. См. "указатель" администратора на /easy-admin

Итак, вот моя конфигурация security.yml:

providers:
    fos_userbundle:
        id: fos_user.user_provider.username

firewalls:
    easy_admin:
        pattern:            ^/easy-admin
        context:            user
        form_login:
            provider:             fos_userbundle
            csrf_provider:        security.csrf.token_manager
            login_path:           fos_user_security_login
            check_path:           fos_user_security_check
            failure_path:         /
            default_target_path:  /easy-admin
        anonymous: ~

        logout:
            path:     /logout
            target:  /easy-admin/login

        access_control:  
            - { path: ^/easy-admin/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: ^/easy-admin, role: ROLE_SUPER_ADMIN }

Мой файл routing.yml выглядит так:

easy_admin_bundle:
  resource: "@EasyAdminBundle/Controller/"
  type:     annotation
  prefix:   /easy-admin

fos_user_security:
  resource: "@FOSUserBundle/Resources/config/routing/security.xml"
  prefix: /easy-admin

fos_user_profile:
  resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
  prefix: /easy-admin/profile

fos_user_register:
  resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
  prefix: /easy-admin/register

fos_user_resetting:
  resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
  prefix: /easy-admin/resetting

fos_user_change_password:
  resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
  prefix: /easy-admin/profile

Итак, что сейчас происходит: я могу нажать /easy-admin, меня перенаправляют на /easy-admin/login и я вижу самую простую форму входа. После предоставления информации и отправки формы меня перенаправляют на маршрут отказа. Еще раз: я знаю, что учетные данные, которые я использую, верны! Любые идеи, чего не хватает или что еще я могу искать? На данный момент у меня нет собственного AuthHandler, но я подумал, что это не обязательно для базового входа в систему с работой сеанса. Спасибо


person Eve    schedule 17.01.2017    source источник


Ответы (1)


Итак, наконец, я обнаружил, что возникла проблема: наш домен cookie не был настроен должным образом. После исправления это заработало нормально.

Это был окончательный конфиг:

  • безопасность.yml:

    easy_admin: шаблон: /easy-admin(.*) анонимный: ~ контекст: пользователь

        form_login:
            login_path:         /easy-admin/login
            check_path:         /easy-admin/login_check
            default_target_path: /easy-admin/
            provider:           fos_userbundle
            use_referer:        false
    
            always_use_default_target_path: true
            require_previous_session: false
    
  • маршрутизация.yml

    easy_admin_bundle:
     resource: "@EasyAdminBundle/Controller/"
     type:     annotation
     prefix:   /easy-admin
    
    fos_user_security:
     prefix: /easy-admin
     resource: "@FOSUserBundle/Resources/config/routing/security.xml"
    
person Eve    schedule 18.01.2017