1515
1616final class TrustedHeaderClientIpEventSubscriber implements EventSubscriberInterface
1717{
18- private const PLATFORM_SH_TRUSTED_HEADER_CLIENT_IP = 'X-Client-IP ' ;
19-
20- private ?string $ trustedHeaderName ;
21-
22- public function __construct (
23- ?string $ trustedHeaderName
24- ) {
25- $ this ->trustedHeaderName = $ trustedHeaderName ;
26- }
27-
2818 public static function getSubscribedEvents (): array
2919 {
3020 return [
@@ -36,28 +26,9 @@ public function onKernelRequest(RequestEvent $event): void
3626 {
3727 $ request = $ event ->getRequest ();
3828
39- $ trustedProxies = Request::getTrustedProxies ();
40- $ trustedHeaderSet = Request::getTrustedHeaderSet ();
41-
42- $ trustedHeaderName = $ this ->trustedHeaderName ;
43- if (null === $ trustedHeaderName && $ this ->isPlatformShProxy ($ request )) {
44- $ trustedHeaderName = self ::PLATFORM_SH_TRUSTED_HEADER_CLIENT_IP ;
29+ if ($ this ->isPlatformShProxy ($ request ) && $ request ->headers ->get ('Client-Cdn ' ) === 'fastly ' ) {
30+ Request::setTrustedProxies (['REMOTE_ADDR ' ], Request::getTrustedHeaderSet ());
4531 }
46-
47- if (null === $ trustedHeaderName ) {
48- return ;
49- }
50-
51- $ trustedClientIp = $ request ->headers ->get ($ trustedHeaderName );
52-
53- if (null !== $ trustedClientIp ) {
54- if ($ trustedHeaderSet !== -1 ) {
55- $ trustedHeaderSet |= Request::HEADER_X_FORWARDED_FOR ;
56- }
57- $ request ->headers ->set ('X_FORWARDED_FOR ' , $ trustedClientIp );
58- }
59-
60- Request::setTrustedProxies ($ trustedProxies , $ trustedHeaderSet );
6132 }
6233
6334 private function isPlatformShProxy (Request $ request ): bool
0 commit comments