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 |
} |