Skip to content

Commit

Permalink
[Security] Fix http form authentication entry point
Browse files Browse the repository at this point in the history
  • Loading branch information
Herzult committed Jun 25, 2011
1 parent 1dfb637 commit cb3ad8b
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 1 deletion.
Expand Up @@ -51,7 +51,7 @@ public function __construct(HttpKernelInterface $kernel, HttpUtils $httpUtils, $
public function start(Request $request, AuthenticationException $authException = null)
{
if ($this->useForward) {
$path = $this->httpUtils->createRequest($request, $this->loginPath);
$subRequest = $this->httpUtils->createRequest($request, $this->loginPath);

return $this->httpKernel->handle($subRequest, HttpKernelInterface::SUB_REQUEST);
}
Expand Down
@@ -0,0 +1,55 @@
<?php

namespace Symfony\Tests\Component\Security\Http\EntryPoint;

use Symfony\Component\Security\Http\EntryPoint\FormAuthenticationEntryPoint;
use Symfony\Component\HttpKernel\HttpKernelInterface;

class FormAuthenticationEntryPointTest extends \PHPUnit_Framework_TestCase
{
public function testStart()
{
$request = $this->getMock('Symfony\Component\HttpFoundation\Request', array(), array(), '', false, false);
$response = $this->getMock('Symfony\Component\HttpFoundation\Response');

$httpKernel = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
$httpUtils = $this->getMock('Symfony\Component\Security\Http\HttpUtils');
$httpUtils
->expects($this->once())
->method('createRedirectResponse')
->with($this->equalTo($request), $this->equalTo('/the/login/path'))
->will($this->returnValue($response))
;

$entryPoint = new FormAuthenticationEntryPoint($httpKernel, $httpUtils, '/the/login/path', false);

$this->assertEquals($response, $entryPoint->start($request));
}

public function testStartWithUseForward()
{
$request = $this->getMock('Symfony\Component\HttpFoundation\Request', array(), array(), '', false, false);
$subRequest = $this->getMock('Symfony\Component\HttpFoundation\Request', array(), array(), '', false, false);
$response = $this->getMock('Symfony\Component\HttpFoundation\Response');

$httpUtils = $this->getMock('Symfony\Component\Security\Http\HttpUtils');
$httpUtils
->expects($this->once())
->method('createRequest')
->with($this->equalTo($request), $this->equalTo('/the/login/path'))
->will($this->returnValue($subRequest))
;

$httpKernel = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
$httpKernel
->expects($this->once())
->method('handle')
->with($this->equalTo($request), $this->equalTo(HttpKernelInterface::SUB_REQUEST))
->will($this->returnValue($response))
;

$entryPoint = new FormAuthenticationEntryPoint($httpKernel, $httpUtils, '/the/login/path', true);

$this->assertEquals($response, $entryPoint->start($request));
}
}

0 comments on commit cb3ad8b

Please sign in to comment.