@@ -78,22 +78,27 @@ public function before(
7878        string  $ requestBody ,
7979        string  $ requestDateTime
8080    ) {
81-         if  ($ this  ->config ->isSecretMode ()) {
82-             $ requestorIp  = $ this  ->secretParser ->parseIp ();
83-             $ requestHeaders  = $ this  ->secretParser ->parseHeades ($ requestHeaders );
84-             $ requestBody  = $ this  ->secretParser ->parseBody ($ requestBody );
85-         }
81+         $ filter  = $ this  ->config ->getFilterRequestPaths ();
82+         
83+         // Only log this request if the path is not filtered. 
84+         if  (!$ this  ->filterRequestPath ($ requestPath , $ filter )) {
85+           if  ($ this  ->config ->isSecretMode ()) {
86+               $ requestorIp  = $ this  ->secretParser ->parseIp ();
87+               $ requestHeaders  = $ this  ->secretParser ->parseHeades ($ requestHeaders );
88+               $ requestBody  = $ this  ->secretParser ->parseBody ($ requestBody );
89+           }
8690
87-         $ log  = $ this  ->logFactory ->create ();
88-         $ log ->setData ([
89-             'request_method '  => $ requestMethod ,
90-             'requestor_ip '  => $ requestorIp ,
91-             'request_url '  => $ requestPath ,
92-             'request_headers '  => $ requestHeaders ,
93-             'request_body '  => $ requestBody ,
94-             'request_datetime '  => $ requestDateTime
95-         ]);
96-         $ this  ->lastLog  = $ log ;
91+           $ log  = $ this  ->logFactory ->create ();
92+           $ log ->setData ([
93+               'request_method '  => $ requestMethod ,
94+               'requestor_ip '  => $ requestorIp ,
95+               'request_url '  => $ requestPath ,
96+               'request_headers '  => $ requestHeaders ,
97+               'request_body '  => $ requestBody ,
98+               'request_datetime '  => $ requestDateTime
99+           ]);
100+           $ this  ->lastLog  = $ log ;
101+         }
97102    }
98103
99104    /** 
@@ -123,4 +128,26 @@ public function after(
123128            $ this  ->logger ->error (__ ('Cant complete webapi log save because of error: %1 ' , $ exception ->getMessage ()));
124129        }
125130    }
131+ 
132+     /** 
133+      * Check if request path is among the filters. 
134+      * 
135+      * @param string $requestPath 
136+      * @param array  $filters 
137+      * 
138+      * @return bool 
139+      */ 
140+     private  function  filterRequestPath (
141+         string  $ requestPath ,
142+         array  $ filters
143+     ): bool  {
144+         foreach  ($ filters  as  $ filter ) {
145+             if  ($ filter  != '' ) {
146+                 if  (stripos ($ requestPath , $ filter ) !== false ) {
147+                     return  true ;
148+                 }
149+             }
150+         }
151+         return  false ;
152+     }
126153}
0 commit comments