在 Symfony 3.1 中升级时,需要对 FOSUser 进行完全身份验证
Posted
技术标签:
【中文标题】在 Symfony 3.1 中升级时,需要对 FOSUser 进行完全身份验证【英文标题】:Full authentication is required on FOSUser when upgrade in Symfony 3.1 【发布时间】:2016-09-26 14:10:42 【问题描述】:我刚刚将一个项目从 Symfony 2.8 升级到 Symfony 3.1,现在我遇到了问题。当我想访问我的登录页面(这是我的第一页)时,我收到一条错误消息:
需要完整的身份验证才能访问此资源。 500 内部服务器错误 - InsufficientAuthenticationException
所以我无法登录和访问我的其他页面。
有人遇到过同样的问题吗?
PS : 这是我的security.yml
jms_security_extra:
secure_all_services: false
expressions: true
安全性: 编码器: Admin\UserBundle\Entity\User: sha512
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
# Firewall pour les pages de connexion, inscription, et récupération de mot de passe
login:
pattern: ^/(login$|register|resetting)
anonymous: true
# Firewall principal pour le reste de notre site
main:
pattern: ^/
anonymous: true
form_login:
provider: fos_userbundle
login_path: fos_user_security_login
default_target_path: common_authentification
logout:
path: fos_user_security_logout
target: fos_user_security_login
access_control:
- path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY
- path: ^/projectmanager, roles: ROLE_PROJECT_MANAGER
- path: ^/admin, roles: ROLE_ADMIN
- path: ^/contributor, roles: ROLE_USER
- path: ^/operator, roles: ROLE_OPERATOR
【问题讨论】:
你试过转储你的cookies吗? 您好,很抱歉我迟到了,我没有看到您的消息...我已经尝试过了,但仍然是同样的问题... 【参考方案1】:当您需要通过身份验证才能访问资源时会出现此错误,在您的情况下,它告诉您要访问您的资源,您需要IS_FULLY_AHTENTICATED
角色。
尝试删除登录资源access_control
中的$
【讨论】:
好的,但是这个错误是因为你需要访问角色来获取你的资源,你不能在匿名的情况下获取它。 好的,但在我升级到 symfony 3 之前它就可以工作了。而且我没有更改我的 security.yml 中的任何内容。 按照 Symfony 3 重新安装 FOSUserBundle 可能是一个解决方案 好的,我去试试。【参考方案2】:好的,我发现了问题。过时的是 jms 安全包。我删除了它,它现在可以工作了。
【讨论】:
这对我有用。感谢发布您自己的解决方案并为我节省了大量时间!以上是关于在 Symfony 3.1 中升级时,需要对 FOSUser 进行完全身份验证的主要内容,如果未能解决你的问题,请参考以下文章
从 Symfony 3.4 升级到 4:升级 symfony 时出错
EasyAdmin 3.1 CrudControllers Symfony