1

我正在尝试创建一个登录表单,它将从数据库中获取用户。我阅读了一些教程,但我不能很好地理解安全性。我遵循了这一点,我所做的唯一区别是我从 User 类中删除了 salt 和 isActive 。我只是复制了其余部分,然后在数据库中创建了表并添加了一个用户和一个组 - 名称:admin,角色:ROLE_ADMIN 并在 user_group 表中列出了他们的 id-s。但无论我尝试什么,我都会遇到同样的错误 - 提供的密码无效。你能帮我解决这个问题吗?也许一些教程会有所帮助,尽管我阅读了大约 4-5 篇,但我仍然没有得到所有内容。

这是我的配置文件:

security:
   encoders:
      EM\MyFriendsBundle\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: EMMyFriendsBundle:User }

firewalls:
    secured_area:
        pattern:    ^/
        anonymous: ~
        form_login:
            login_path:  /login
            check_path:  /login_check

access_control:
    - { path: ^/admin, roles: ROLE_ADMIN }
4

1 回答 1

2

您需要在将密码保存到数据库之前对其进行编码。请参见:

http://symfony.com/doc/current/book/security.html#book-security-encoding-user-password

于 2012-08-22T09:48:32.990 回答