Symfony 使用FOS为EasyAdminBundle进行安全设置
我正在玩EasyAdminBundle,现在我正试图通过FOS UserBundle的表单登录设置安全性。然而,它并没有真正起作用。 我总是被重定向到security.yml中的“failure_path”,而不是成功登录。 我想要的是:Symfony 使用FOS为EasyAdminBundle进行安全设置,symfony,fosuserbundle,symfony-security,symfony2-easyadmin,Symfony,Fosuserbundle,Symfony Security,Symfony2 Easyadmin,我正在玩EasyAdminBundle,现在我正试图通过FOS UserBundle的表单登录设置安全性。然而,它并没有真正起作用。 我总是被重定向到security.yml中的“failure_path”,而不是成功登录。 我想要的是: 点击/轻松管理 重定向到FOS标准登录表单/轻松管理/登录 使用我的用户名和密码登录(我知道凭据是可以的) 请参阅/easy admin上的管理员“索引” 下面是我的security.yml配置: providers: fos_userbundle:
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,但我认为这并不是使会话基本登录正常工作所必需的。谢谢所以我终于找到了问题所在: 我们的cookie域配置不正确。修复后,它工作得很好 这是最终配置:
- security.yml:
轻松管理:
模式:/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"