diff options
author | Fabien Potencier <fabien.potencier@gmail.com> | 2015-09-28 13:14:38 +0200 |
---|---|---|
committer | Fabien Potencier <fabien.potencier@gmail.com> | 2015-09-28 13:14:38 +0200 |
commit | 16223cbf326eee2a9fff59f765c218ff028e9330 (patch) | |
tree | ece9d42f9b716a90d1696b40e2e5a1bb65fac37f /Core/Exception/CustomUserMessageAuthenticationException.php | |
parent | 085fdff5afa56b088fe298d08940afd2900d7d29 (diff) | |
parent | 123c8df26a95bfb86c1dacea02778b1aa8432fbe (diff) | |
download | symfony-security-16223cbf326eee2a9fff59f765c218ff028e9330.zip symfony-security-16223cbf326eee2a9fff59f765c218ff028e9330.tar.gz symfony-security-16223cbf326eee2a9fff59f765c218ff028e9330.tar.bz2 |
Merge branch '2.8'
* 2.8:
[Finder] simplified code
Fix tests in 2.8
[Validator] Sync polish translation file
Adding a class to make it easier to set custom authentication error messages
Readd the correct tests
Diffstat (limited to 'Core/Exception/CustomUserMessageAuthenticationException.php')
-rw-r--r-- | Core/Exception/CustomUserMessageAuthenticationException.php | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/Core/Exception/CustomUserMessageAuthenticationException.php b/Core/Exception/CustomUserMessageAuthenticationException.php new file mode 100644 index 0000000..9f5071f --- /dev/null +++ b/Core/Exception/CustomUserMessageAuthenticationException.php @@ -0,0 +1,79 @@ +<?php + +/* + * This file is part of the Symfony package. + * + * (c) Fabien Potencier <fabien@symfony.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Security\Core\Exception; + +/** + * An authentication exception where you can control the message shown to the user. + * + * Be sure that the message passed to this exception is something that + * can be shown safely to your user. In other words, avoid catching + * other exceptions and passing their message directly to this class. + * + * @author Ryan Weaver <ryan@knpuniversity.com> + */ +class CustomUserMessageAuthenticationException extends AuthenticationException +{ + private $messageKey; + + private $messageData = array(); + + public function __construct($message = '', array $messageData = array(), $code = 0, \Exception $previous = null) + { + parent::__construct($message, $code, $previous); + + $this->setSafeMessage($message, $messageData); + } + + /** + * Set a message that will be shown to the user. + * + * @param string $messageKey The message or message key + * @param array $messageData Data to be passed into the translator + */ + public function setSafeMessage($messageKey, array $messageData = array()) + { + $this->messageKey = $messageKey; + $this->messageData = $messageData; + } + + public function getMessageKey() + { + return $this->messageKey; + } + + public function getMessageData() + { + return $this->messageData; + } + + /** + * {@inheritdoc} + */ + public function serialize() + { + return serialize(array( + parent::serialize(), + $this->messageKey, + $this->messageData, + )); + } + + /** + * {@inheritdoc} + */ + public function unserialize($str) + { + list($parentData, $this->messageKey, $this->messageData) = unserialize($str); + + parent::unserialize($parentData); + } +} |