File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed
src/Symfony/Component/HttpKernel Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change 1717
1818namespace Symfony \Component \HttpKernel \HttpCache ;
1919
20+ use Symfony \Component \HttpFoundation \Exception \SuspiciousOperationException ;
2021use Symfony \Component \HttpFoundation \Request ;
2122use Symfony \Component \HttpFoundation \Response ;
2223use Symfony \Component \HttpKernel \HttpKernelInterface ;
@@ -715,7 +716,11 @@ private function getTraceKey(Request $request): string
715716 $ path .= '? ' .$ qs ;
716717 }
717718
718- return $ request ->getMethod ().' ' .$ path ;
719+ try {
720+ return $ request ->getMethod ().' ' .$ path ;
721+ } catch (SuspiciousOperationException $ e ) {
722+ return '_BAD_METHOD_ ' .$ path ;
723+ }
719724 }
720725
721726 /**
Original file line number Diff line number Diff line change @@ -61,6 +61,17 @@ public function testPassesOnNonGetHeadRequests()
6161 $ this ->assertFalse ($ this ->response ->headers ->has ('Age ' ));
6262 }
6363
64+ public function testPassesSuspiciousMethodRequests ()
65+ {
66+ $ this ->setNextResponse (200 );
67+ $ this ->request ('POST ' , '/ ' , ['HTTP_X-HTTP-Method-Override ' => '__CONSTRUCT ' ]);
68+ $ this ->assertHttpKernelIsCalled ();
69+ $ this ->assertResponseOk ();
70+ $ this ->assertTraceNotContains ('stale ' );
71+ $ this ->assertTraceNotContains ('invalid ' );
72+ $ this ->assertFalse ($ this ->response ->headers ->has ('Age ' ));
73+ }
74+
6475 public function testInvalidatesOnPostPutDeleteRequests ()
6576 {
6677 foreach (['post ' , 'put ' , 'delete ' ] as $ method ) {
You can’t perform that action at this time.
0 commit comments