在 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.1 - 缓存和图像

从 Symfony 3.4 升级到 4:升级 symfony 时出错

EasyAdmin 3.1 CrudControllers Symfony

Symfony 3.1 作曲家冲突

当我尝试通过更改 `extra.symfony.require` 来升级 Symfony 时,为啥会出现此错误?

Symfony 2 Apache 2.4 php7 升级 Vhost 文件