Spostati logger in service a parte
1 files added
4 files modified
| | |
| | | use Illuminate\Foundation\Validation\ValidatesRequests; |
| | | use Illuminate\Http\Request; |
| | | use Illuminate\Routing\Controller as BaseController; |
| | | use Illuminate\Support\Str; |
| | | |
| | | class Controller extends BaseController |
| | | { |
| | |
| | | $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)); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | public function modelBasedRequest(Request $request) |
| | | { |
| | | $this->logReceivedRequest($request); |
| | | \RequestLogger::logReceivedRequest($request); |
| | | |
| | | $picassoRequest = (str_starts_with($request->getRequestUri(), '/picasso/',)); |
| | | $profile = Utils::getRequestedUser($request); |
| | | $responseContent = $this->VolaFakeSSO->getModelBasedResponses($request); |
| | | $responseContent = $this->compressIfRequested($request, $responseContent); |
| | | |
| | | if (isset($profile)) { |
| | | $responseContent = $this->VolaFakeSSO->getModelBasedResponses($request, $profile, $picassoRequest); |
| | | $this->logProcessedRequest($request, $responseContent, (($picassoRequest) ? "SSO v2 Legacy" : "SSO v2 Picasso")); |
| | | $responseContent = $this->compressIfRequested($request, $responseContent); |
| | | return response($responseContent, 200, $this->headers); |
| | | } else { |
| | | $this->logRejectedRequest($request); |
| | | return response('No cookie, no logged', 400, $this->headers); |
| | | } |
| | | return response($responseContent['data'], $responseContent['status'], $this->headers); |
| | | } |
| | | |
| | | public function manageLegacyRequest(Request $request) |
| | | { |
| | | $this->logReceivedRequest($request); |
| | | \RequestLogger::logReceivedRequest($request); |
| | | |
| | | $picassoRequest = (str_starts_with($request->getRequestUri(), '/picasso/',)); |
| | | $profile = Utils::getRequestedUser($request); |
| | | |
| | | if (isset($profile)) { |
| | | $responseContent = $this->VolaFakeSSO->getResponses($request, $profile, $picassoRequest); |
| | | $this->logProcessedRequest($request, $responseContent, (($picassoRequest) ? "SSO Legacy" : "SSO Picasso")); |
| | | \RequestLogger::logProcessedRequest($request, $responseContent); |
| | | $responseContent = $this->compressIfRequested($request, $responseContent); |
| | | return response($responseContent, 200, $this->headers); |
| | | } else { |
| | | $this->logRejectedRequest($request); |
| | | \RequestLogger::logRejectedRequest($request); |
| | | return response('No cookie, no logged', 400, $this->headers); |
| | | } |
| | | } |
New file |
| | |
| | | <?php |
| | | |
| | | namespace App\Vola\Services\RequestLogger; |
| | | |
| | | use Illuminate\Http\Request; |
| | | use Illuminate\Support\Str; |
| | | |
| | | class RequestLogger |
| | | { |
| | | 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)); |
| | | } |
| | | } |
| | | } |
| | |
| | | class VolaFakeHTTPResponder |
| | | { |
| | | public array $data; |
| | | public array $headers; |
| | | private array $xmlResponses; |
| | | |
| | | public function __construct() |
| | |
| | | $this->xmlResponses = config('devtools.fake_sso_profiles'); |
| | | } |
| | | |
| | | public function getModelBasedResponses($request, $selectedUser, $picasso = false): string|array |
| | | public function getModelBasedResponses(Request $request): array |
| | | { |
| | | return 'test. funziono ma le logiche non sono state ancora implementate'; |
| | | $picassoRequest = (str_starts_with($request->getRequestUri(), '/picasso/',)); |
| | | $profile = Utils::getRequestedUser($request); |
| | | |
| | | if (isset($profile)) { |
| | | |
| | | $responseContent["data"] = 'test. funziono ma le logiche non sono state ancora implementate'; |
| | | $responseContent["status"] = 200; |
| | | \RequestLogger::logProcessedRequest($request, $responseContent, (($picassoRequest) ? 'Picasso' : 'SSO Legacy') ); |
| | | return $responseContent; |
| | | |
| | | } else { |
| | | \RequestLogger::logRejectedRequest($request, $request->cookies); |
| | | return [ |
| | | "status" => 400, |
| | | "data" => $this->getErrorMessage('no-cookie') |
| | | ]; |
| | | } |
| | | |
| | | } |
| | | |
| | | public function getResponses(Request $request, $selectedUser, $picasso = false): string|array |
| | |
| | | private function getErrorMessage(string $code): string |
| | | { |
| | | switch ($code) { |
| | | case 'no-cookie': |
| | | return 'No cookie No Party. Send your CAuthCookie or SESSIONID cookie'; |
| | | case 'no-sso-user': |
| | | return 'this sso user doesnt exist. check your CAuthCookie value'; |
| | | return 'This sso user doesnt exist. Check your CAuthCookie cookie value'; |
| | | case 'no-picasso-user': |
| | | return 'this picasso user doesnt exist. check your SSOSESSIONID value'; |
| | | return 'This picasso user doesnt exist. Check your SSOSESSIONID coookie value'; |
| | | case 'no-method-on-user': |
| | | return 'this method response is not set for this user'; |
| | | return 'This method response is not set for this user. Check this server database.'; |
| | | case 'no-method': |
| | | return 'couldnt detect requested method'; |
| | | return 'Couldnt detect requested method. Check your request url.'; |
| | | default: |
| | | return 'couldnt detect proper response. check your syntax'; |
| | | return 'Couldnt detect proper response.'; |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | 'aliases' => Facade::defaultAliases()->merge([ |
| | | 'VolaFakeHTTPResponder' => App\Vola\Services\VolaFakeHTTPResponder\VolaFakeHTTPResponder::class, |
| | | 'RequestLogger' => \App\Vola\Services\RequestLogger\RequestLogger::class |
| | | ])->toArray(), |
| | | |
| | | ]; |