sfDoctrineGuardPlugin 在数据转储后重新哈希来自装置的密码

发布于 2024-11-26 02:59:49 字数 424 浏览 3 评论 0原文

我有 s symfony 1.4,带有 Doctrine 和 sfDoctrineGuardPlugin。

我在sfGuardUser加载装置方面遇到问题,这些装置是由symfonydoctrine:data-dump

核心 制成的问题的关键在于,fixture 文件中的密码未加密,它们会在fixture 加载过程中加密。

另一方面,当我们从数据库中转储数据时,密码已经加密,如果我们尝试再次加载它们,密码的值将被第二次重新哈希

有人知道如何避免这种情况吗?

我正在使用此过程来防止模型需要更改时丢失数据。如果有人知道这个特定问题的其他解决方案,我将不胜感激!

I have s symfony 1.4 with Doctrine and sfDoctrineGuardPlugin.

I am experiencing a problem with loading fixtures for sfGuardUser which are made from symfony doctrine:data-dump

The core of the problem is that the passwords in the fixture file are not encrypted and they will be encrypted in the process of fixture loading.

In the other hand - when we dump data from the data base, the passwords are already encrypted and if we try to load them again, the value of the password will be rehashed for the second time.

Does anybody know how to avoid this situation?

I am using this process to prevent data loss when the model needs to be changed. If anybody knows other solution for this particular problem, I will appreciate!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ま昔日黯然 2024-12-03 02:59:49

旧 symfony 论坛中有一个解决方案。

简而言之:在您的用户模型中创建一个 setEncryptedPassword 函数,如下所示:

  public function setEncryptedPassword($v)
  {
    if ($v !== null) {
        $v = (string) $v;
    }

    if ($this->password !== $v) {
        parent::_set('password', $v);
    }

    return $this;
  }

并在转储中将所有出现的 password 更改为 encrypted_pa​​ssword

There's a solution to this in the old symfony forum.

In short: create a setEncryptedPassword function in your user model like this:

  public function setEncryptedPassword($v)
  {
    if ($v !== null) {
        $v = (string) $v;
    }

    if ($this->password !== $v) {
        parent::_set('password', $v);
    }

    return $this;
  }

And in your dump change all password occurences to encrypted_password.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文