You are browsing the documentation for Symfony 2.3 which is not maintained anymore.
Consider upgrading your projects to Symfony 5.2.
UserPassword
UserPassword¶
Note
Since Symfony 2.2, the UserPassword*
classes in the
Symfony\Component\Security\Core\Validator\Constraint
namespace are deprecated and will be removed in Symfony 2.3. Please
use the UserPassword*
classes in the
Symfony\Component\Security\Core\Validator\Constraints
namespace instead.
This validates that an input value is equal to the current authenticated user’s password. This is useful in a form where a user can change their password, but needs to enter their old password for security.
Note
This should not be used to validate a login form, since this is done automatically by the security system.
Applies to | property or method |
Options | |
Class | Symfony\Component\Security\Core\Validator\Constraints\UserPassword |
Validator | Symfony\Component\Security\Core\Validator\Constraints\UserPasswordValidator |
Basic Usage¶
Suppose you have a PasswordChange
class, that’s used in a form where
the user can change their password by entering their old password and a
new password. This constraint will validate that the old password matches
the user’s current password:
- Annotations
1 2 3 4 5 6 7 8 9 10 11 12 13 14
// src/AppBundle/Form/Model/ChangePassword.php namespace AppBundle\Form\Model; use Symfony\Component\Security\Core\Validator\Constraints as SecurityAssert; class ChangePassword { /** * @SecurityAssert\UserPassword( * message = "Wrong value for your current password" * ) */ protected $oldPassword; }
- YAML
1 2 3 4 5 6
# src/AppBundle/Resources/config/validation.yml AppBundle\Form\Model\ChangePassword: properties: oldPassword: - Symfony\Component\Security\Core\Validator\Constraints\UserPassword: message: 'Wrong value for your current password'
- XML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
<!-- src/AppBundle/Resources/config/validation.xml --> <?xml version="1.0" encoding="UTF-8" ?> <constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd"> <class name="AppBundle\Form\Model\ChangePassword"> <property name="oldPassword"> <constraint name="Symfony\Component\Security\Core\Validator\Constraints\UserPassword" > <option name="message">Wrong value for your current password</option> </constraint> </property> </class> </constraint-mapping>
- PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
// src/AppBundle/Form/Model/ChangePassword.php namespace AppBundle\Form\Model; use Symfony\Component\Validator\Mapping\ClassMetadata; use Symfony\Component\Security\Core\Validator\Constraints as SecurityAssert; class ChangePassword { public static function loadValidatorData(ClassMetadata $metadata) { $metadata->addPropertyConstraint( 'oldPassword', new SecurityAssert\UserPassword(array( 'message' => 'Wrong value for your current password', )) ); } }
This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.