我正在尝试配置我的 symfony2 应用程序以将 sha512 密码编码器与 in_memory 安全提供程序一起使用,但我无法让它工作。我在登录时收到臭名昭著的“凭据错误”错误。与这里的大多数问题不同,我不想从任何数据库中获取用户。我不想使用 FOSUserBundle。我想要的只是用 sha512 哈希替换我的 security.yml 中的明文密码。
根据http://symfony.com/doc/current/book/security.html#encoding-the-user-s-password这应该就像设置编码器并用哈希替换明文密码一样简单,这样就我试图做的:
安全.yml:
security:
encoders:
Symfony\Component\Security\Core\User\User: sha512
providers:
in_memory:
memory:
users:
admin: { password: $6$randomsalt$mbd3sS15ibE.W7hkLqfQ0LNEQsUod7BOUD67g/oIb8uhqGfyAzaga3vgGaRJZn67VdHHfn.tnkKY9ffDVXw3C., roles: [ 'ROLE_ADMIN' ] }
Run Code Online (Sandbox Code Playgroud)
密码是“admin”,盐是“randomsalt”,散列是由 mkpasswd 生成的:
mkpasswd -m sha-512 admin randomsalt
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?symfony2 是否希望散列采用其他格式?
编辑:我也尝试过的事情:
crypt($password, "$6$".$salt)encode_as_base64在安全编码器上切换真/假结果是一样的:“坏凭据”。