当前位置: 首页 > 知识库问答 >
问题:

symfony2登录名不断显示错误凭据

汝墨一
2023-03-14

你好我按照这个教程:http://symfony.com/doc/current/cookbook/security/entity_provider.html

My security.yml:

security:
    encoders:
        Symfony\Component\Security\Core\User\User: plaintext
        modules\UserBundle\Entity\User:
            algorithm:        sha1
            encode_as_base64: false
            iterations:       1

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        chain_provider:
            chain:
                providers: [in_memory, user_db]
        in_memory:
            memory:
                users:
                    test: { password: test }
        user_db:
            entity: { class: modulesUserBundle:User }

    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false

        login:
            pattern:  ^/demo/secured/login$
            security: false

        login_firewall:
            pattern:    ^/login$
            anonymous:  ~

        secured_area:
            pattern:    ^/
            provider: user_db
            http_basic:
                realm: "Secured Demo Area"
                provider: in_memory
            form_login: ~

            logout:
                path:   _demo_logout
                target: _demo
            #anonymous: ~
            #http_basic:
            #    realm: "Secured Demo Area"

        admin_area:
            pattern:    ^/admin
            http_basic: ~

    access_control:
        - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/users, roles: ROLE_SUPER_ADMIN }
        - { path: ^/admin, roBad credentialsles: ROLE_ADMIN }
        #- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }

在数据库中,我有:

用户:

(id, username, salt, password, email, is_active)
(1,'admin','123456','7c4a8d09ca3762af61e59520943dc264','admin@modules.com',1)
(2,'bruno','123456','7c4a8d09ca3762af61e59520943dc264','mail@gmail.com',1)

角色:

(id, name, role)
(1,'Admin','ROLE_ADMIN')
(2,'User','ROLE_USER')

用户角色:

(user_id, role_id)
(1,1)
(2,2)

每次我尝试用DB中的一个用户登录时,我都会得到“坏凭据”。但是,如果我使用内存中定义的“test”用户登录,没有问题

我想这是我的安全问题。但我做错了什么?

共有2个答案

杜弘伟
2023-03-14

修复:
security.yml

security:
    encoders:
        Symfony\Component\Security\Core\User\User: plaintext
        modules\UserBundle\Entity\User:
            algorithm:        sha1
            encode_as_base64: false
            iterations:       1

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        administrators:
            entity: { class: modulesUserBundle:User }

    firewalls:
        login_firewall:
            pattern:    ^/login$
            anonymous:  ~
        secured_area:
            pattern:    ^/
            provider: administrators
            form_login: ~

    access_control:
    - { path: ^/admin/, roles: ROLE_ADMIN }
樊运乾
2023-03-14

您是如何在DB中注册此用户的?我可以看到用户的密码是纯文本的,因此我假设在登录过程中,它将密码与您的配置相匹配,并在hole process encoded pass之后!=db pass,因此无法登录。对DB密码进行编码,我相信所有这些都可以
如果您正在加载装置,请使用$user-

 类似资料:
  • 我想限制登录用户的登录路径, security.yml 我的登录功能: 问题是它可以工作,例如,对于/admin,只有ROLE\u admin有访问权限,ROLE\u用户号。但是/login,如果我登录或不登录,我可以访问它,在symfony2开发工具中,我看到我是匿名的,我登录了stel。。。我没有主意

  • 我开发了一个应用程序。现在我正在尝试将twitter集成到我的应用程序中。我的问题是当我登录应用程序时,它会显示"at。 请任何人帮我谢谢... 当我尝试登录我得到了这个错误:

  • 问题内容: 我有一个示例,尝试使用Symfony2和FOSUserBundle创建AJAX登录。我设置我自己和在我的文件。 这是课程: 这对于处理成功和失败的AJAX登录尝试都非常有用。但是,启用后-我无法通过标准表单POST方法(非AJAX)登录。我收到以下错误: 我希望自己的重写和重写仅对XmlHttpRequests(AJAX请求)执行,如果没有,则将执行交还给原始处理程序。 有没有办法做到

  • 我正在尝试使用我的应用程序中的google帐户登录用户。当用户第一次在我的应用程序中使用google帐户登录时,我遇到了一个问题。它显示了以下错误:传递给Illumb\Auth\Guard::login()的参数1必须实现interface Illumb\Auth\UserInterface,在我的控制器中为空我有以下信息: 我知道问题出在Auth::login($user);因为插入与Auth: