summaryrefslogtreecommitdiffstats
path: root/Http/RememberMe/RememberMeServicesInterface.php
diff options
context:
space:
mode:
authorJohannes M. Schmitt <schmittjoh@gmail.com>2011-01-26 21:34:11 +0100
committerFabien Potencier <fabien.potencier@gmail.com>2011-01-26 22:23:20 +0100
commitbebc09870cb0a7720e2c6a8c5c74585e69e8bb24 (patch)
tree0c399647cdbe504be405017e7cc04c70c53482f2 /Http/RememberMe/RememberMeServicesInterface.php
parentc85f3d708d2c9b00d73ca1234ccfaf50336d94b1 (diff)
downloadsymfony-security-bebc09870cb0a7720e2c6a8c5c74585e69e8bb24.zip
symfony-security-bebc09870cb0a7720e2c6a8c5c74585e69e8bb24.tar.gz
symfony-security-bebc09870cb0a7720e2c6a8c5c74585e69e8bb24.tar.bz2
namespace changes
Symfony\Component\Security -> Symfony\Component\Security\Core Symfony\Component\Security\Acl remains unchanged Symfony\Component\HttpKernel\Security -> Symfony\Component\Security\Http
Diffstat (limited to 'Http/RememberMe/RememberMeServicesInterface.php')
-rw-r--r--Http/RememberMe/RememberMeServicesInterface.php66
1 files changed, 66 insertions, 0 deletions
diff --git a/Http/RememberMe/RememberMeServicesInterface.php b/Http/RememberMe/RememberMeServicesInterface.php
new file mode 100644
index 0000000..0fcf99d
--- /dev/null
+++ b/Http/RememberMe/RememberMeServicesInterface.php
@@ -0,0 +1,66 @@
+<?php
+namespace Symfony\Component\Security\Http\RememberMe;
+
+use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
+use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\HttpFoundation\Request;
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien.potencier@symfony-project.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Interface that needs to be implemented by classes which provide remember-me
+ * capabilities.
+ *
+ * We provide two implementations out-of-the-box:
+ * - TokenBasedRememberMeServices (does not require a TokenProvider)
+ * - PersistentTokenBasedRememberMeServices (requires a TokenProvider)
+ *
+ * @author Johannes M. Schmitt <schmittjoh@gmail.com>
+ */
+interface RememberMeServicesInterface
+{
+ /**
+ * This method will be called whenever the SecurityContext does not contain
+ * an TokenInterface object and the framework wishes to provide an implementation
+ * with an opportunity to authenticate the request using remember-me capabilities.
+ *
+ * No attempt whatsoever is made to determine whether the browser has requested
+ * remember-me services or presented a valid cookie. Any and all such determinations
+ * are left to the implementation of this method.
+ *
+ * If a browser has presented an unauthorised cookie for whatever reason,
+ * make sure to throw an AuthenticationException as this will consequentially
+ * result in a call to loginFail() and therefore an invalidation of the cookie.
+ *
+ * @param Request $request
+ * @return TokenInterface
+ */
+ function autoLogin(Request $request);
+
+ /**
+ * Called whenever an authentication attempt was made, but the credentials
+ * supplied by the user were missing or otherwise invalid.
+ *
+ * This method needs to take care of invalidating the cookie.
+ */
+ function loginFail(Request $request, Response $response);
+
+ /**
+ * Called whenever authentication attempt is successful (e.g. a form login).
+ *
+ * An implementation may always set a remember-me cookie in the Response,
+ * although this is not recommended.
+ *
+ * Instead, implementations should typically look for a request parameter
+ * (such as a HTTP POST parameter) that indicates the browser has explicitly
+ * requested for the authentication to be remembered.
+ */
+ function loginSuccess(Request $request, Response $response, TokenInterface $token);
+} \ No newline at end of file