davide.cucurnia@vola.it
2024-01-31 7c54fa9452d45da2b8a791704cfb62635e7e3c13
commit | author | age
9f6455 1 <?php
DC 2
3 namespace App\Http\Controllers\FakeResponder;
4
5 use App\Http\Controllers\Controller;
6 use App\Vola\Services\VolaFakeHTTPResponder\VolaFakeHTTPResponder;
7 use Illuminate\Http\Request;
8 use Illuminate\Support\Str;
9
10 class FakeResponder extends Controller
11 {
12
13     public string $cookieFakeSSOName = "CAuthCookie";
14     public string $cookieFakePicassoName = "SSOSESSIONID";
15     public array $headers;
16     public VolaFakeHTTPResponder $VolaFakeSSO;
17
18     function __construct()
19     {
20         $this->VolaFakeSSO = new VolaFakeHTTPResponder();
21         $this->headers = [
22             "Content-Type" => 'text/xml',
23         ];
cc9b73 24         if (config('custom.compressed_responses',false) === TRUE) {
D 25             $this->headers['content-encoding'] = 'gzip';
26         }
9f6455 27     }
DC 28
29     public function manageLegacyRequest(Request $request)
30     {
31         if (isset($_COOKIE[$this->cookieFakeSSOName])) {
7c54fa 32             $profile = intval(str_replace("xno:", "", $_COOKIE[$this->cookieFakeSSOName]));
D 33             $responseContent = $this->VolaFakeSSO->getResponses($request, $profile);
cc9b73 34
7c54fa 35             $this->logProcessedRequest($request, $responseContent, "SSO Legacy");
cc9b73 36             $responseContent = (config('custom.compressed_responses',false) === TRUE) ? gzencode($responseContent, 3) : $responseContent;
9f6455 37             return response($responseContent, 200, $this->headers);
7c54fa 38
9f6455 39         } else {
7c54fa 40             $this->logRejectedRequest($request);
D 41             return response('No cookie, no logged', 400, $this->headers);
9f6455 42         }
DC 43     }
44
45     public function managePicassoRequest(Request $request)
46     {
47         if (isset($_COOKIE[$this->cookieFakePicassoName])) {
7c54fa 48             $profile = intval(str_replace("xno:", "", $_COOKIE[$this->cookieFakePicassoName]));
D 49             $responseContent = $this->VolaFakeSSO->getResponses($request, $profile, true);
cc9b73 50
7c54fa 51             $this->logProcessedRequest($request, $responseContent, "Picasso");
cc9b73 52             $responseContent = (config('custom.compressed_responses',false) === TRUE) ? gzencode($responseContent, 3) : $responseContent;
9f6455 53             return response($responseContent, 200, $this->headers);
DC 54         } else {
7c54fa 55             $this->logRejectedRequest($request);
D 56             return response('No cookie no logged', 400, $this->headers);
9f6455 57         }
DC 58     }
59
7c54fa 60     public function logProcessedRequest(Request $request, $responseContent = null, $system = '')
9f6455 61     {
d2e4b7 62         if (config('custom.log_all_requests', true) === TRUE) {
DC 63             $uriParts = explode("?", $request->url());
64             $methodUri = Str::afterLast($uriParts[0], "/");
65             if (isset($responseContent)) {
66                 \Log::channel('requests_managed')->debug("\n" . $system . " " . $request->getClientIp() . " " . $methodUri . " :\n" . print_r($responseContent, 1));
67             }
9f6455 68         }
DC 69     }
70
7c54fa 71     public function logRejectedRequest(Request $request, ?array $additionalInfo = null)
D 72     {
73         if (config('custom.log_rejected_requests', true) === TRUE) {
74             \Log::channel('requests_failed')->debug("Picasso " . $request->url() . "\nNessun cookie di sessione " . print_r($additionalInfo, 1));
75         }
76     }
77
9f6455 78 }