【发布时间】:2014-02-09 21:07:01
【问题描述】:
我的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
【问题讨论】:
-
检查您是否在对密码进行哈希处理时设置了一些盐。还要检查您的
password字段的长度(散列密码可能很小) -
我将
salt设置为''。我的密码是 admin 所以哈希是C7AD44CBAD762A5DA0A452F9E854FDC1E0E7A52A38015F23F3EAB1D80B931DD472634DFAC71CD34EBC35D16AB7FB8A90C81F975113D6C7538DC69DD8DE9077EC -
你的密码在数据库中的长度?
-
最大长度固定为255
-
emm 你能在检索用户之前发布你的实体和你在数据库中存储用户的逻辑吗?
标签: php security symfony login routing