我的security.yml
使用Symfony 2时出现问题。
这是我文件的内容:
security:
encoders:
MOD\UserBundle\Entity\User:
algorithm: sha512
iterations: 1
encode_as_base64: false
role_hierarchy:
#[...]
providers:
user_db:
entity:
class: MOD\UserBundle\Entity\User
property: username
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/user/login$
anonymous: true
main:
pattern: ^/
anonymous: false
provider: user_db
form_login:
login_path: user_login
check_path: user_check
logout:
path: user_logout
target: /user/login
我有一个名为User的实体,其字段为:id, email, username, password, salt, roles
当我尝试从/user/login
登录时,结果始终相同:"Bad credentials"
。
有没有办法检查user_check
请求中发生了什么?或security.yml
中的任何明显错误配置?
这是我在app/logs/dev.log
中得到的:
[2014-02-09 21:35:27] doctrine.DEBUG: SELECT t0.id AS id1, t0.username AS username2, t0.password AS password3, t0.salt AS salt4, t0.email AS email5, t0.roles AS roles6 FROM User t0 WHERE t0.username = ? LIMIT 1 ["Maxime"] []
[2014-02-09 21:35:27] security.INFO: Authentication request failed: Bad credentials [] []
在我的数据库中,我只有一位用户名为Maxime
答案 0 :(得分:0)
谢谢zizoujab。
由于您问了我很多关于密码的问题以及在我的数据库中存储密码的方法,我最终在我的sha512
中将plaintext
替换为security.yml
。
然后我尝试用以下方式登录:
maxime / C7AD44CBAD762A5DA0A452F9E854FDC1E0E7A52A38015F23F3EAB1D80B931DD472634DFAC71CD34EBC35D16AB7FB8A90C81F975113D6C7538DC69DD8DE9077EC
它有效。
答案 1 :(得分:0)
我绝对解决了我的问题。
我改变了security.yml
:
encoders:
MOD\UserBundle\Entity\User:
algorithm: sha512
iterations: 1
encode_as_base64: true
我用sha512和base64编码保存密码哈希。
有效!