5
5
use Sentry \SentrySdk ;
6
6
use Sentry \State \HubInterface ;
7
7
use Sentry \State \Scope ;
8
+ use Symfony \Component \HttpFoundation \Request ;
8
9
use Symfony \Component \HttpKernel \Event \ControllerEvent ;
9
10
use Symfony \Component \HttpKernel \Event \FilterControllerEvent ;
10
11
use Symfony \Component \HttpKernel \Event \GetResponseEvent ;
11
12
use Symfony \Component \HttpKernel \Event \RequestEvent ;
12
13
use Symfony \Component \Security \Core \Authentication \Token \Storage \TokenStorageInterface ;
13
14
use Symfony \Component \Security \Core \User \UserInterface ;
14
15
15
- if (! class_exists (RequestEvent::class)) {
16
- class_alias (GetResponseEvent::class, RequestEvent::class);
17
- }
18
-
19
- if (! class_exists (ControllerEvent::class)) {
20
- class_alias (FilterControllerEvent::class, ControllerEvent::class);
21
- }
22
-
23
16
/**
24
17
* Class RequestListener
25
18
* @package Sentry\SentryBundle\EventListener
@@ -50,12 +43,29 @@ public function __construct(
50
43
*
51
44
* @param RequestEvent $event
52
45
*/
53
- public function onKernelRequest (RequestEvent $ event ): void
46
+ public function onRequest (RequestEvent $ event ): void
47
+ {
48
+ if (! $ event ->isMasterRequest ()) {
49
+ return ;
50
+ }
51
+
52
+ $ this ->handleRequestEvent ($ event ->getRequest ());
53
+ }
54
+
55
+ /**
56
+ * BC layer for SF < 4.3
57
+ */
58
+ public function onKernelRequest (GetResponseEvent $ event ): void
54
59
{
55
60
if (! $ event ->isMasterRequest ()) {
56
61
return ;
57
62
}
58
63
64
+ $ this ->handleRequestEvent ($ event ->getRequest ());
65
+ }
66
+
67
+ private function handleRequestEvent (Request $ request ): void
68
+ {
59
69
$ currentClient = SentrySdk::getCurrentHub ()->getClient ();
60
70
if (null === $ currentClient || ! $ currentClient ->getOptions ()->shouldSendDefaultPii ()) {
61
71
return ;
@@ -77,25 +87,42 @@ public function onKernelRequest(RequestEvent $event): void
77
87
$ userData = $ this ->getUserData ($ token ->getUser ());
78
88
}
79
89
80
- $ userData ['ip_address ' ] = $ event -> getRequest () ->getClientIp ();
90
+ $ userData ['ip_address ' ] = $ request ->getClientIp ();
81
91
82
92
SentrySdk::getCurrentHub ()
83
93
->configureScope (function (Scope $ scope ) use ($ userData ): void {
84
94
$ scope ->setUser ($ userData , true );
85
95
});
86
96
}
87
97
88
- public function onKernelController (ControllerEvent $ event ): void
98
+ public function onController (ControllerEvent $ event ): void
99
+ {
100
+ if (! $ event ->isMasterRequest ()) {
101
+ return ;
102
+ }
103
+
104
+ $ this ->handleControllerEvent ($ event ->getRequest ());
105
+ }
106
+
107
+ /**
108
+ * BC layer for SF < 4.3
109
+ */
110
+ public function onKernelController (FilterControllerEvent $ event ): void
89
111
{
90
112
if (! $ event ->isMasterRequest ()) {
91
113
return ;
92
114
}
93
115
94
- if (! $ event ->getRequest ()->attributes ->has ('_route ' )) {
116
+ $ this ->handleControllerEvent ($ event ->getRequest ());
117
+ }
118
+
119
+ private function handleControllerEvent (Request $ request ): void
120
+ {
121
+ if (! $ request ->attributes ->has ('_route ' )) {
95
122
return ;
96
123
}
97
124
98
- $ matchedRoute = (string ) $ event -> getRequest () ->attributes ->get ('_route ' );
125
+ $ matchedRoute = (string )$ request ->attributes ->get ('_route ' );
99
126
100
127
SentrySdk::getCurrentHub ()
101
128
->configureScope (function (Scope $ scope ) use ($ matchedRoute ): void {
0 commit comments