Пользовательский провайдер Symfony / пароль для посола - PullRequest
2 голосов
/ 16 марта 2012

Я использую DynamoDB для своего приложения, поэтому доктрина ORM не подходит для меня, когда дело доходит до аутентификации.

Я создал базового пользовательского провайдера, и он отлично работает при использовании хэша sha1, однако я полностью застрял / не понимаю, как заставить его работать с солью.

К вашему сведению: мой код основан на этом руководстве из руководства

Код:

Однажды «новый пользователь»Форма была отправлена, захватывает необработанные данные и выполняет следующие действия для сохранения в БД - это прекрасно работает:

    $salt = '79fdshjh408hjhgd87r5438ujl';
    $password = base64_encode(sha1($rawPassword.'{'.$salt.'}')); 

При аутентификации у меня есть «userProvider», который запрашивает информацию о пользователях на основе имени пользователя изБД - это тоже нормально работает, и мне возвращаются все детали

//WebserviceUserProvider.php
$username = $userData['userName'];
$password = $userData['password'];
$roles[0] = 'ROLE_ADMIN';
$salt = '79fdshjh408hjhgd87r5438ujl';

return new WebserviceUser($username, $password, $salt, $roles);

файл WebserviceUser является прямой копией файла в документах:

security.yml

    security:
      encoders:
        HvH\SecurityBundle\Security\WebserviceUser: 
          algorithm:   sha1
          iterations: 1
          encode_as_base64: true

Если бы кто-нибудь мог указать мне правильное направление, это было бы очень ценно.

Спасибо

...