diff options
author | Ryan Weaver <ryan@thatsquality.com> | 2015-09-23 22:14:56 -0400 |
---|---|---|
committer | Ryan Weaver <ryan@thatsquality.com> | 2015-09-27 16:39:53 -0400 |
commit | 1a66cae1aaed170da367d81c9fdc1f83cf6c3018 (patch) | |
tree | 1eebdfd1a70ec0e840e5dfd925b352e1d0d8bf34 /Core/Exception | |
parent | ae2c4c820d9aca6ad7eac272e9c18f72c15dc04a (diff) | |
download | symfony-security-1a66cae1aaed170da367d81c9fdc1f83cf6c3018.zip symfony-security-1a66cae1aaed170da367d81c9fdc1f83cf6c3018.tar.gz symfony-security-1a66cae1aaed170da367d81c9fdc1f83cf6c3018.tar.bz2 |
Adding a class to make it easier to set custom authentication error messages
Diffstat (limited to 'Core/Exception')
-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); + } +} |