aggiunti metodi getSelectedMSISDNDetails, getMSISDNList, getMSISDNDetails per picasso
| | |
| | | use Illuminate\Foundation\Auth\Access\AuthorizesRequests; |
| | | use Illuminate\Foundation\Bus\DispatchesJobs; |
| | | use Illuminate\Foundation\Validation\ValidatesRequests; |
| | | use Illuminate\Http\Request; |
| | | use Illuminate\Routing\Controller as BaseController; |
| | | use Illuminate\Support\Str; |
| | | |
| | | class Controller extends BaseController |
| | | { |
| | | use AuthorizesRequests, DispatchesJobs, ValidatesRequests; |
| | | |
| | | public function compressIfRequested(Request $request, $responseContent): mixed |
| | | { |
| | | if (config('custom.compressed_responses',false) === TRUE) { |
| | | $responseContent = ($request->accepts('gzip')) ? gzencode($responseContent, 5) : $responseContent; |
| | | } |
| | | return $responseContent; |
| | | } |
| | | |
| | | public static function logReceivedRequest(Request $request) |
| | | { |
| | | if (config('custom.log_all_requests', true) === TRUE) { |
| | | \Log::channel('requests')->debug(str_repeat('*******', 13)); |
| | | \Log::channel('requests')->debug($request->getUri()); |
| | | \Log::channel('requests')->debug($request->header()); |
| | | } |
| | | } |
| | | |
| | | public static function logProcessedRequest(Request $request, $responseContent = null, $system = '') |
| | | { |
| | | if (config('custom.log_all_requests', true) === TRUE) { |
| | | \Log::channel('requests')->debug("Risposta:\n".print_r($responseContent,1)); |
| | | \Log::channel('requests')->debug(str_repeat('*******', 13)); |
| | | } |
| | | if (config('custom.log_processed_requests', true) === TRUE) { |
| | | $uriParts = explode("?", $request->url()); |
| | | $methodUri = Str::afterLast($uriParts[0], "/"); |
| | | if (isset($responseContent)) { |
| | | \Log::channel('requests_managed')->debug("\n" . $system . " " . $request->getClientIp() . " " . $methodUri . " :\n" . print_r($responseContent, 1)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public static function logRejectedRequest(Request $request, ?array $additionalInfo = null) |
| | | { |
| | | if (config('custom.log_rejected_requests', true) === TRUE) { |
| | | \Log::channel('requests_failed')->debug("Picasso " . $request->url() . "\nNessun cookie di sessione " . print_r($additionalInfo, 1)); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | use App\Http\Controllers\Controller; |
| | | use App\Vola\Services\VolaFakeHTTPResponder\VolaFakeHTTPResponder; |
| | | use Illuminate\Http\Request; |
| | | use Illuminate\Support\Str; |
| | | use App\Vola\Classes\Utils; |
| | | |
| | | class FakeResponder extends Controller |
| | | { |
| | |
| | | |
| | | public function manageLegacyRequest(Request $request) |
| | | { |
| | | $this->logReceivedRequest($request); |
| | | if (isset($_COOKIE[$this->cookieFakeSSOName])) { |
| | | $profile = intval(str_replace("xno:", "", $_COOKIE[$this->cookieFakeSSOName])); |
| | | $responseContent = $this->VolaFakeSSO->getResponses($request, $profile); |
| | | |
| | | $this->logProcessedRequest($request, $responseContent, "SSO Legacy"); |
| | | $responseContent = (config('custom.compressed_responses',false) === TRUE) ? gzencode($responseContent, 3) : $responseContent; |
| | | $responseContent = $this->compressIfRequested($request, $responseContent); |
| | | |
| | | return response($responseContent, 200, $this->headers); |
| | | |
| | | } else { |
| | |
| | | |
| | | public function managePicassoRequest(Request $request) |
| | | { |
| | | $this->logReceivedRequest($request); |
| | | if (isset($_COOKIE[$this->cookieFakePicassoName])) { |
| | | $profile = intval(str_replace("xno:", "", $_COOKIE[$this->cookieFakePicassoName])); |
| | | $responseContent = $this->VolaFakeSSO->getResponses($request, $profile, true); |
| | | |
| | | $this->logProcessedRequest($request, $responseContent, "Picasso"); |
| | | $responseContent = (config('custom.compressed_responses',false) === TRUE) ? gzencode($responseContent, 3) : $responseContent; |
| | | $responseContent = $this->compressIfRequested($request, $responseContent); |
| | | |
| | | return response($responseContent, 200, $this->headers); |
| | | } else { |
| | | $this->logRejectedRequest($request); |
| | | return response('No cookie no logged', 400, $this->headers); |
| | | } |
| | | } |
| | | |
| | | public function logProcessedRequest(Request $request, $responseContent = null, $system = '') |
| | | { |
| | | if (config('custom.log_all_requests', true) === TRUE) { |
| | | $uriParts = explode("?", $request->url()); |
| | | $methodUri = Str::afterLast($uriParts[0], "/"); |
| | | if (isset($responseContent)) { |
| | | \Log::channel('requests_managed')->debug("\n" . $system . " " . $request->getClientIp() . " " . $methodUri . " :\n" . print_r($responseContent, 1)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public function logRejectedRequest(Request $request, ?array $additionalInfo = null) |
| | | { |
| | | if (config('custom.log_rejected_requests', true) === TRUE) { |
| | | \Log::channel('requests_failed')->debug("Picasso " . $request->url() . "\nNessun cookie di sessione " . print_r($additionalInfo, 1)); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | } else if ($methodUri != "") { |
| | | // controllo metodo e parametri e conseguente risposta |
| | | $userResponses = $this->getUserResponseSet($request, $testUser); |
| | | $userResponses = $this->getUserResponseSet($testUser, $picasso); |
| | | if (isset($userResponses[$methodUri])) { |
| | | $responseContent = $this->getResponseArgumentsBased($userResponses, $methodUri, $reqParams); |
| | | return $responseContent; |
| | | } else { |
| | | return 'user is not set for this method'; |
| | | } |
| | | } else { |
| | | return 'wront-request-no-such-method'; |
| | | return 'wrong-request-no-such-method'; |
| | | } |
| | | } |
| | | |
| | | public function getLoggedPicasso($testUser) |
| | | { |
| | | if (isset($_COOKIE["SSOSESSIONID"])) { |
| | | if (!isset($this->sso_XML[$testUser]["picasso"])) { |
| | | return 'this picasso user doesnt exist. check your SSOSESSIONID value'; |
| | | } |
| | | $sampleResponseString = Arr::first($this->sso_XML[$testUser]["picasso"]["getWebcustomerInformation"]["parametri"]["t"] ); |
| | | $sampleResponseObject = Utils::convertXMLStrToArray($sampleResponseString); |
| | | $resp = [ |
| | |
| | | public function getLoggedLegacy($testUser) |
| | | { |
| | | if (isset($_COOKIE["CAuthCookie"])) { |
| | | $sampleResponseString = Arr::first($this->sso_XML[$testUser]["picasso"]["getWebcustomerInformation"]["parametri"]["t"] ); |
| | | if (!isset($this->sso_XML[$testUser]["sso"])) { |
| | | return 'this user doesnt exist. check your CAuthCookie value'; |
| | | } |
| | | $sampleResponseString = Arr::first($this->sso_XML[$testUser]["sso"]["getWebcustomerInformation"]["parametri"]["t"] ); |
| | | $sampleResponseObject = Utils::convertXMLStrToArray($sampleResponseString); |
| | | $resp = [ |
| | | 'logged' => (string) 1, |
| | |
| | | //verifico se il metodo dell' utente ha la chiave che sto cercando |
| | | if ($key != "t" && isset($params[$key])) { |
| | | if (array_key_exists($value, $params[$key])) { |
| | | \Log::channel('general')->debug("[VolaFakeHTTPResponder] Inserisco xml specifico per key:$key ,params: " . print_r($params, 1) . " key: $key, value: $value, xml: " . print_r($params[$key][$value], 1)); |
| | | \Log::channel('requests')->debug("[VolaFakeHTTPResponder] Inserisco xml specifico per key:$key ,params: " . print_r($params, 1) . " key: $key, value: $value, xml: " . print_r($params[$key][$value], 1)); |
| | | return $params[$key][$value]; |
| | | } |
| | | } |
| | | } |
| | | //xml di default (se richiede parametri di default conterrĂ errori) |
| | | $defaultResponse = Arr::first($params["t"]); |
| | | \Log::channel('general')->debug("[VolaFakeHTTPResponder] Inserisco xml di default $defaultResponse per method: $methodUri"); |
| | | \Log::channel('requests')->debug("[VolaFakeHTTPResponder] Inserisco xml di default $defaultResponse per method: $methodUri"); |
| | | return $defaultResponse; |
| | | } |
| | | |
| | | /** |
| | | * @param Request $request |
| | | * @param mixed $testUser |
| | | * @param bool $picasso |
| | | * @return array|mixed |
| | | */ |
| | | private function getUserResponseSet(Request $request, mixed $testUser) |
| | | private function getUserResponseSet(mixed $testUser, bool $picasso) |
| | | { |
| | | $url = $request->url(); |
| | | $isPicasso = Str::contains($url, "picasso"); |
| | | if ($isPicasso) { |
| | | if ($picasso) { |
| | | $userMethods = $this->sso_XML[$testUser]["picasso"] ?? []; |
| | | } else { |
| | | $userMethods = $this->sso_XML[$testUser]["sso"] ?? []; |
| | |
| | | return [ |
| | | |
| | | 'log_all_requests' => env('LOG_ALL_REQUESTS', true), |
| | | 'log_processed_requests' => env('LOG_PROCESSED_REQUESTS', true), |
| | | 'log_rejected_requests' => env('LOG_REJECTED_REQUESTS', true), |
| | | |
| | | 'compressed_responses' => env('GZIP_COMPRESS_RESPONSES', false), |
| | |
| | | 'days' => 15, |
| | | ], |
| | | |
| | | 'requests' => [ |
| | | 'driver' => 'daily', |
| | | 'path' => storage_path('logs/requests.log'), |
| | | 'level' => env('LOG_LEVEL', 'debug'), |
| | | 'days' => 14, |
| | | ], |
| | | |
| | | |
| | | 'requests_failed' => [ |
| | | 'driver' => 'daily', |
| | | 'path' => storage_path('logs/requests_KO.log'), |
| | |
| | | |
| | | JWT_SECRET=jjnkmAApiVHv8WGFGzNDOetFmHhRfar3mlT9XXV2hYSgF4FLSZttc4V1YW3ZV3lr |
| | | |
| | | LOG_ALL_REQUESTS=false |
| | | LOG_ALL_REQUESTS=true |
| | | LOG_PROCESSED_REQUESTS=false |
| | | LOG_REJECTED_REQUESTS=true |
| | | |
| | | GZIP_COMPRESS_RESPONSES=false |
| | | |
| | |
| | | { |
| | | Route::get('/auth/islogged', '\App\Http\Controllers\FakeResponder\FakeResponder@managePicassoRequest'); |
| | | Route::get('/services/getWebcustomerInformation', '\App\Http\Controllers\FakeResponder\FakeResponder@managePicassoRequest'); |
| | | |
| | | Route::get('/services/getSelectedMSISDNDetails', '\App\Http\Controllers\FakeResponder\FakeResponder@manageLegacyRequest'); |
| | | Route::get('/services/getMSISDNList', '\App\Http\Controllers\FakeResponder\FakeResponder@manageLegacyRequest'); |
| | | Route::get('/services/getMSISDNDetails', '\App\Http\Controllers\FakeResponder\FakeResponder@manageLegacyRequest'); |
| | | }); |