diff options
author | Johannes M. Schmitt <schmittjoh@gmail.com> | 2011-01-26 21:34:11 +0100 |
---|---|---|
committer | Fabien Potencier <fabien.potencier@gmail.com> | 2011-01-26 22:23:20 +0100 |
commit | bebc09870cb0a7720e2c6a8c5c74585e69e8bb24 (patch) | |
tree | 0c399647cdbe504be405017e7cc04c70c53482f2 /Http/EntryPoint/FormAuthenticationEntryPoint.php | |
parent | c85f3d708d2c9b00d73ca1234ccfaf50336d94b1 (diff) | |
download | symfony-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/EntryPoint/FormAuthenticationEntryPoint.php')
-rw-r--r-- | Http/EntryPoint/FormAuthenticationEntryPoint.php | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/Http/EntryPoint/FormAuthenticationEntryPoint.php b/Http/EntryPoint/FormAuthenticationEntryPoint.php new file mode 100644 index 0000000..0902507 --- /dev/null +++ b/Http/EntryPoint/FormAuthenticationEntryPoint.php @@ -0,0 +1,56 @@ +<?php + +/* + * 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. + */ + +namespace Symfony\Component\Security\Http\EntryPoint; + +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\Security\Core\Exception\AuthenticationException; +use Symfony\Component\Security\Core\Authentication\EntryPoint\AuthenticationEntryPointInterface; +use Symfony\Component\Security\Core\SecurityContext; + +/** + * FormAuthenticationEntryPoint starts an authentication via a login form. + * + * @author Fabien Potencier <fabien.potencier@symfony-project.com> + */ +class FormAuthenticationEntryPoint implements AuthenticationEntryPointInterface +{ + protected $loginPath; + protected $useForward; + + /** + * Constructor + * + * @param string $loginPath The path to the login form + * @param Boolean $useForward Whether to forward or redirect to the login form + */ + public function __construct($loginPath, $useForward = false) + { + $this->loginPath = $loginPath; + $this->useForward = (Boolean) $useForward; + } + + /** + * {@inheritdoc} + */ + public function start(Request $request, AuthenticationException $authException = null) + { + if ($this->useForward) { + return $event->getSubject()->handle(Request::create($this->loginPath), HttpKernelInterface::SUB_REQUEST); + } + + $response = new Response(); + $response->setRedirect(0 !== strpos($this->loginPath, 'http') ? $request->getUriForPath($this->loginPath) : $this->loginPath, 302); + + return $response; + } +} |