summaryrefslogtreecommitdiffstats
path: root/Core/Encoder
diff options
context:
space:
mode:
Diffstat (limited to 'Core/Encoder')
-rw-r--r--Core/Encoder/EncoderFactory.php8
-rw-r--r--Core/Encoder/EncoderFactoryInterface.php8
-rw-r--r--Core/Encoder/MessageDigestPasswordEncoder.php1
-rw-r--r--Core/Encoder/PlaintextPasswordEncoder.php5
4 files changed, 14 insertions, 8 deletions
diff --git a/Core/Encoder/EncoderFactory.php b/Core/Encoder/EncoderFactory.php
index 738706a..9429441 100644
--- a/Core/Encoder/EncoderFactory.php
+++ b/Core/Encoder/EncoderFactory.php
@@ -11,8 +11,6 @@
namespace Symfony\Component\Security\Core\Encoder;
-use Symfony\Component\Security\Core\User\UserInterface;
-
/**
* A generic encoder factory implementation
*
@@ -30,10 +28,10 @@ class EncoderFactory implements EncoderFactoryInterface
/**
* {@inheritDoc}
*/
- public function getEncoder(UserInterface $user)
+ public function getEncoder($user)
{
foreach ($this->encoders as $class => $encoder) {
- if (!$user instanceof $class) {
+ if ((is_object($user) && !$user instanceof $class) || (!is_object($user) && !is_subclass_of($user, $class) && $user != $class)) {
continue;
}
@@ -44,7 +42,7 @@ class EncoderFactory implements EncoderFactoryInterface
return $this->encoders[$class];
}
- throw new \RuntimeException(sprintf('No encoder has been configured for account "%s".', get_class($user)));
+ throw new \RuntimeException(sprintf('No encoder has been configured for account "%s".', is_object($user) ? get_class($user) : $user));
}
/**
diff --git a/Core/Encoder/EncoderFactoryInterface.php b/Core/Encoder/EncoderFactoryInterface.php
index 978f907..f6b4a25 100644
--- a/Core/Encoder/EncoderFactoryInterface.php
+++ b/Core/Encoder/EncoderFactoryInterface.php
@@ -23,9 +23,11 @@ interface EncoderFactoryInterface
/**
* Returns the password encoder to use for the given account.
*
- * @param UserInterface $user
+ * @param UserInterface|string $user A UserInterface instance of a class name
*
- * @return PasswordEncoderInterface never null
+ * @return PasswordEncoderInterface
+ *
+ * @throws \RuntimeException when no password encoder could be found for the user
*/
- public function getEncoder(UserInterface $user);
+ public function getEncoder($user);
}
diff --git a/Core/Encoder/MessageDigestPasswordEncoder.php b/Core/Encoder/MessageDigestPasswordEncoder.php
index a5b2c81..a8bd553 100644
--- a/Core/Encoder/MessageDigestPasswordEncoder.php
+++ b/Core/Encoder/MessageDigestPasswordEncoder.php
@@ -20,6 +20,7 @@ class MessageDigestPasswordEncoder extends BasePasswordEncoder
{
private $algorithm;
private $encodeHashAsBase64;
+ private $iterations;
/**
* Constructor.
diff --git a/Core/Encoder/PlaintextPasswordEncoder.php b/Core/Encoder/PlaintextPasswordEncoder.php
index 21a9a97..c21f3cd 100644
--- a/Core/Encoder/PlaintextPasswordEncoder.php
+++ b/Core/Encoder/PlaintextPasswordEncoder.php
@@ -20,6 +20,11 @@ class PlaintextPasswordEncoder extends BasePasswordEncoder
{
private $ignorePasswordCase;
+ /**
+ * Constructor.
+ *
+ * @param Boolean $ignorePasswordCase Compare password case-insensitive
+ */
public function __construct($ignorePasswordCase = false)
{
$this->ignorePasswordCase = $ignorePasswordCase;