使用CakePHP 2.2.5的错误密码验证消息


Wrong password validation message using CakePHP 2.2.5

我有一个非常奇怪的问题,我创建了一个简单的表单来将用户添加到数据库中。

代码运行得很好,用户被正确地保存到数据库中。

但是。。。

我在使用验证时遇到了问题,这是关于密码字段的验证数组的摘录:

public $validate = array(        
    ...
    'password'  => array(
        'rule'     => array('minLength', 4),
        'required' => true,
        'message'  => "La password deve essere lunga almeno 4 caratteri"
    )
);

minLength规则工作正常,但如果我尝试显示消息执行:

debug($this->User->validationErrors);

在我的控制器中。我看到这个输出:

array(
    'password' => '*****'
)

为什么"*"??我想得到我在$validate数组中写的消息。

此问题仅发生在密码字段上。

为了避免一些粗心的人在他们的网站上显示他们的数据库密码(因为他们忘记关闭调试),必须实现一些愚蠢的"安全功能"。因此,如果密钥"password"、"schema"等在数组中,则该值将被隐藏。

只需使用pr()、var_dump()、print_r()或任何其他不这样做的方法。

附言:你可以看看代码(https://github.com/cakephp/cakephp/blob/master/lib/Cake/Utility/Debugger.php#L449)

因为密码是散列的,并且有超过4个字符。您必须在beforeSave:)中检查密码和验证后哈希

你用的是哪种蛋糕?