davide.cucurnia@vola.it
2024-02-07 fcb09380736bcbd8609ada51df5423d428552932
Spostati logger in service a parte
1 files added
4 files modified
129 ■■■■■ changed files
app/Http/Controllers/Controller.php 32 ●●●●● patch | view | raw | blame | history
app/Http/Controllers/FakeResponder/FakeResponder.php 22 ●●●●● patch | view | raw | blame | history
app/Vola/Services/RequestLogger/RequestLogger.php 40 ●●●●● patch | view | raw | blame | history
app/Vola/Services/VolaFakeHTTPResponder/VolaFakeHTTPResponder.php 34 ●●●● patch | view | raw | blame | history
config/app.php 1 ●●●● patch | view | raw | blame | history
app/Http/Controllers/Controller.php
@@ -7,7 +7,6 @@
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Support\Str;
class Controller extends BaseController
{
@@ -19,37 +18,6 @@
            $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));
        }
    }
}
app/Http/Controllers/FakeResponder/FakeResponder.php
@@ -27,36 +27,28 @@
    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);
        }
    }
app/Vola/Services/RequestLogger/RequestLogger.php
New file
@@ -0,0 +1,40 @@
<?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));
        }
    }
}
app/Vola/Services/VolaFakeHTTPResponder/VolaFakeHTTPResponder.php
@@ -13,7 +13,6 @@
class VolaFakeHTTPResponder
{
    public array $data;
    public array $headers;
    private array $xmlResponses;
    public function __construct()
@@ -21,9 +20,26 @@
        $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
@@ -140,16 +156,18 @@
    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.';
        }
    }
config/app.php
@@ -195,6 +195,7 @@
    'aliases' => Facade::defaultAliases()->merge([
        'VolaFakeHTTPResponder' => App\Vola\Services\VolaFakeHTTPResponder\VolaFakeHTTPResponder::class,
        'RequestLogger' => \App\Vola\Services\RequestLogger\RequestLogger::class
    ])->toArray(),
];