使用FOS for EasyAdminBundle进行安全设置

时间:2017-01-17 16:38:42

标签: symfony fosuserbundle symfony-security symfony2-easyadmin

我正在玩EasyAdminBundle,现在我正尝试通过FOS UserBundle的表单登录来设置安全性。但是,它并没有真正起作用。 我总是被重定向到" failure_path"而不是成功登录。在security.yml中。 我想要的是什么:

  1. hit / easy-admin
  2. 重定向到FOS标准登录表单/ easy-admin / login
  3. 使用我的用户名和密码登录(我知道凭据没问题)
  4. 请参阅admin" index" on / easy-admin
  5. 所以这是我的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,但我认为这不是必须使用会话工作进行基本登录。感谢

1 个答案:

答案 0 :(得分:0)

所以最后我发现问题出现了: 我们的cookie域未正确配置。修好后,它运作良好。

这是最终的配置:

  • security.yml:

    easy_admin:         模式:/easy-admin(.*)         匿名:〜         context:user

        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
    
  • 的routing.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"