FOSUserBundle - Проверка - Переопределение - Надежность пароля - PullRequest
0 голосов
/ 17 июня 2020

Как повысить надежность пароля в FOSUserBundle?

friendsofsymfony / user-bundle: 2.1 symfony: 4.4

Я пытаюсь увеличить минимальную надежность, которую я пытался добавить в validation.yaml

FOS\UserBundle\Model\User:
    properties:
        plainPassword:
            - NotBlank:
                groups: [AcmeValidation]
            - Length:
                min: 6
                minMessage: fos_user.password.short
                groups: [AcmeValidation]

Я получаю сообщение об ошибке There is no extension able to load the configuration for "FOS\UserBundle\Model\User.

Symfony документация: https://symfony.com/doc/current/bundles/override.html#validation -метаданные

Проверка I я пытаюсь заменить: https://github.com/FriendsOfSymfony/FOSUserBundle/blob/a9e71b6e7b61e7f39ba77436ba3e9af954450c4b/Resources/config/validation.xml#L56

Я также хотел бы, чтобы все формы FOSUserBundle использовали это новое правило проверки.

EDIT 1:

Я добавил следующее в расширенную сущность пользователя, которая, по крайней мере, увеличивает длину пароля до 6 символов, но если пользователь вводит 1 символ, он увидит двойное сообщение об ошибке fos_user.password.short. Одна ошибка исходит от BaseUser, а другая от моего расширенного объекта.

use FOS\UserBundle\Model\User as BaseUser;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @ORM\Table(name="fos_user")
 */
class User extends BaseUser
{

    /**
     * Plain password. Used for model validation. Must not be persisted.
     *
     * @var string
     * @Assert\Length(
     *      min = 6,
     *      max = 100,
     *      minMessage = "fos_user.password.short",
     *      allowEmptyString = false,
     *      groups = {"Registration", "ResetPassword", "ChangePassword", "Profile"}
     * )
     */
    protected $plainPassword; 
...