Merge branch '2.8' into 3.3
* 2.8: fixed wrong description in a phpdoc 19 digits VISA card numbers are valid [HttpKernel] Fixed test name [Debug] prevent infinite loop with faulty exception handlers Add the missing `enabled` session attribute [HttpKernel] Turn bad hosts into 400 instead of 500
This commit is contained in:
commit
07b5304268
|
@ -102,6 +102,7 @@
|
|||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="session">
|
||||
<xsd:attribute name="enabled" type="xsd:boolean" />
|
||||
<xsd:attribute name="storage-id" type="xsd:string" />
|
||||
<xsd:attribute name="handler-id" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
|
|
|
@ -28,7 +28,7 @@ class StringInput extends ArgvInput
|
|||
const REGEX_QUOTED_STRING = '(?:"([^"\\\\]*(?:\\\\.[^"\\\\]*)*)"|\'([^\'\\\\]*(?:\\\\.[^\'\\\\]*)*)\')';
|
||||
|
||||
/**
|
||||
* @param string $input An array of parameters from the CLI (in the argv format)
|
||||
* @param string $input A string representing the parameters from the CLI
|
||||
*/
|
||||
public function __construct($input)
|
||||
{
|
||||
|
|
|
@ -592,6 +592,8 @@ class ErrorHandler
|
|||
|
||||
$handler = self::$reservedMemory = null;
|
||||
$handlers = array();
|
||||
$previousHandler = null;
|
||||
$sameHandlerLimit = 10;
|
||||
|
||||
while (!is_array($handler) || !$handler[0] instanceof self) {
|
||||
$handler = set_exception_handler('var_dump');
|
||||
|
@ -601,7 +603,14 @@ class ErrorHandler
|
|||
break;
|
||||
}
|
||||
restore_exception_handler();
|
||||
|
||||
if ($handler !== $previousHandler) {
|
||||
array_unshift($handlers, $handler);
|
||||
$previousHandler = $handler;
|
||||
} elseif (0 === --$sameHandlerLimit) {
|
||||
$handler = null;
|
||||
break;
|
||||
}
|
||||
}
|
||||
foreach ($handlers as $h) {
|
||||
set_exception_handler($h);
|
||||
|
|
|
@ -15,6 +15,7 @@ use Psr\Log\LoggerInterface;
|
|||
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
|
||||
use Symfony\Component\HttpKernel\Event\FinishRequestEvent;
|
||||
use Symfony\Component\HttpKernel\KernelEvents;
|
||||
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
|
||||
use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;
|
||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
use Symfony\Component\HttpFoundation\RequestStack;
|
||||
|
@ -66,7 +67,11 @@ class RouterListener implements EventSubscriberInterface
|
|||
private function setCurrentRequest(Request $request = null)
|
||||
{
|
||||
if (null !== $request) {
|
||||
try {
|
||||
$this->context->fromRequest($request);
|
||||
} catch (\UnexpectedValueException $e) {
|
||||
throw new BadRequestHttpException($e->getMessage(), $e, $e->getCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -185,4 +185,19 @@ class RouterListenerTest extends TestCase
|
|||
$response = $kernel->handle($request);
|
||||
$this->assertSame(400, $response->getStatusCode());
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \Symfony\Component\HttpKernel\Exception\BadRequestHttpException
|
||||
*/
|
||||
public function testRequestWithBadHost()
|
||||
{
|
||||
$kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\HttpKernelInterface')->getMock();
|
||||
$request = Request::create('http://bad host %22/');
|
||||
$event = new GetResponseEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST);
|
||||
|
||||
$requestMatcher = $this->getMockBuilder('Symfony\Component\Routing\Matcher\RequestMatcherInterface')->getMock();
|
||||
|
||||
$listener = new RouterListener($requestMatcher, $this->requestStack, new RequestContext());
|
||||
$listener->onKernelRequest($event);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -78,9 +78,9 @@ class CardSchemeValidator extends ConstraintValidator
|
|||
'/^5[1-5][0-9]{14}$/',
|
||||
'/^2(22[1-9][0-9]{12}|2[3-9][0-9]{13}|[3-6][0-9]{14}|7[0-1][0-9]{13}|720[0-9]{12})$/',
|
||||
),
|
||||
// All Visa card numbers start with a 4. New cards have 16 digits. Old cards have 13.
|
||||
// All Visa card numbers start with a 4 and have a length of 13, 16, or 19 digits.
|
||||
'VISA' => array(
|
||||
'/^4([0-9]{12}|[0-9]{15})$/',
|
||||
'/^4([0-9]{12}|[0-9]{15}|[0-9]{18})$/',
|
||||
),
|
||||
);
|
||||
|
||||
|
|
|
@ -106,6 +106,7 @@ class CardSchemeValidatorTest extends ConstraintValidatorTestCase
|
|||
array('VISA', '4111111111111111'),
|
||||
array('VISA', '4012888888881881'),
|
||||
array('VISA', '4222222222222'),
|
||||
array('VISA', '4917610000000000003'),
|
||||
array(array('AMEX', 'VISA'), '4111111111111111'),
|
||||
array(array('AMEX', 'VISA'), '378282246310005'),
|
||||
array(array('JCB', 'MASTERCARD'), '5105105105105100'),
|
||||
|
|
Reference in New Issue