0

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

  1. 命中/易于管理
  2. 重定向到FOS标准登录表单/易管理/登入
  3. 登录我的用户名和密码(我知道的凭据都OK)
  4. 看到管理 “指数” 上/易管理

因此,这里是我的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 

那么现在情况到目前为止是: 我可以打/易管理,我重定向到/易于管理/登录,看到了很基本登录表单。提供信息并提交表单后,我将重定向到失败路线。再次说明:我知道我使用的凭据是正确的!任何想法缺少什么或我可以寻找什么?目前,我没有自己的AuthHandler,但我认为这不是强制性的,需要使用会话工作进行基本登录。谢谢

回答

0

所以最后我发现出现了什么问题: 我们的cookie域配置不正确。解决这个问题后,它工作正常。

这是最后的配置:

  • security.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 
    
  • 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"