File tree Expand file tree Collapse file tree 5 files changed +42
-6
lines changed
Expand file tree Collapse file tree 5 files changed +42
-6
lines changed Original file line number Diff line number Diff line change @@ -13,11 +13,15 @@ class ClientRequestIdMiddleware
1313 * Handle an incoming request.
1414 *
1515 * @param \Illuminate\Http\Request $request
16- * @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse ) $next
17- * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
16+ * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response ) $next
17+ * @return \Symfony\Component\HttpFoundation\Response
1818 */
1919 public function handle (Request $ request , Closure $ next ): Response
2020 {
21- return $ next ($ request )->header (CorrelationIdServiceProvider::getClientRequestIdHeaderName (), $ request ->getClientRequestId ());
21+ $ response = $ next ($ request );
22+
23+ $ response ->headers ->set (CorrelationIdServiceProvider::getClientRequestIdHeaderName (), $ request ->getClientRequestId ());
24+
25+ return $ response ;
2226 }
2327}
Original file line number Diff line number Diff line change @@ -14,16 +14,20 @@ class CorrelationIdMiddleware
1414 * Handle an incoming request.
1515 *
1616 * @param \Illuminate\Http\Request $request
17- * @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse ) $next
18- * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
17+ * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response ) $next
18+ * @return \Symfony\Component\HttpFoundation\Response
1919 */
2020 public function handle (Request $ request , Closure $ next ): Response
2121 {
2222 if ($ this ->shouldOverride ($ request ) || ! $ request ->hasHeader (CorrelationIdServiceProvider::getCorrelationIdHeaderName ())) {
2323 $ request ->headers ->set (CorrelationIdServiceProvider::getCorrelationIdHeaderName (), $ this ->generateCorrelationId ($ request ));
2424 }
2525
26- return $ next ($ request )->header (CorrelationIdServiceProvider::getCorrelationIdHeaderName (), $ request ->getCorrelationId ());
26+ $ response = $ next ($ request );
27+
28+ $ response ->headers ->set (CorrelationIdServiceProvider::getCorrelationIdHeaderName (), $ request ->getCorrelationId ());
29+
30+ return $ response ;
2731 }
2832
2933 protected function generateCorrelationId (Request $ request ): string
Original file line number Diff line number Diff line change 77use Illuminate \Http \Request ;
88use Illuminate \Http \Response ;
99use Illuminate \Support \Str ;
10+ use Symfony \Component \HttpFoundation \BinaryFileResponse ;
1011
1112class ClientRequestIdMiddlewareTest extends TestCase
1213{
@@ -24,4 +25,18 @@ public function test_adds_request_id_to_response_header(): void
2425 $ this ->assertTrue ($ response ->headers ->has ('Request-ID ' ));
2526 $ this ->assertEquals ($ uuid , $ response ->headers ->get ('Request-ID ' ));
2627 }
28+
29+ public function test_works_with_binary_file_response (): void
30+ {
31+ $ uuid = Str::orderedUuid ();
32+
33+ $ request = new Request ();
34+ $ request ->headers ->set ('Request-ID ' , $ uuid );
35+ $ response = (new ClientRequestIdMiddleware ())->handle ($ request , function ($ request ) {
36+ return new BinaryFileResponse (__DIR__ .'/../fixtures/dummy.pdf ' );
37+ });
38+
39+ $ this ->assertTrue ($ response ->headers ->has ('Request-ID ' ));
40+ $ this ->assertEquals ($ uuid , $ response ->headers ->get ('Request-ID ' ));
41+ }
2742}
Original file line number Diff line number Diff line change 77use Illuminate \Http \Request ;
88use Illuminate \Http \Response ;
99use Illuminate \Support \Str ;
10+ use Symfony \Component \HttpFoundation \BinaryFileResponse ;
1011
1112class CorrelationIdMiddlewareTest extends TestCase
1213{
@@ -36,4 +37,16 @@ public function test_adds_response_correlation_id_header(): void
3637 $ this ->assertTrue ($ response ->headers ->has ('Correlation-ID ' ));
3738 $ this ->assertEquals ($ response ->headers ->get ('Correlation-ID ' ), $ request ->header ('Correlation-ID ' ));
3839 }
40+
41+ public function test_works_with_binary_file_response (): void
42+ {
43+ $ request = new Request ();
44+
45+ $ response = (new CorrelationIdMiddleware ())->handle ($ request , function ($ request ) {
46+ return new BinaryFileResponse (__DIR__ .'/../fixtures/dummy.pdf ' );
47+ });
48+
49+ $ this ->assertTrue ($ response ->headers ->has ('Correlation-ID ' ));
50+ $ this ->assertEquals ($ response ->headers ->get ('Correlation-ID ' ), $ request ->header ('Correlation-ID ' ));
51+ }
3952}
You can’t perform that action at this time.
0 commit comments