gestione keysite e parametri, config nell'env
2 files added
1 files renamed
3 files modified
| | |
| | | namespace App\Http\Controllers\FakeResponder; |
| | | |
| | | use App\Http\Controllers\Controller; |
| | | use App\Http\Requests\genericPicasso; |
| | | use App\Vola\Services\VolaFakeHTTPResponder\VolaFakeHTTPResponder; |
| | | use Illuminate\Http\Request; |
| | | use App\Vola\Classes\Utils; |
| | |
| | | } |
| | | } |
| | | |
| | | public function managePicassoRequest(Request $request) |
| | | public function managePicassoRequest(genericPicasso $request) |
| | | { |
| | | $this->logReceivedRequest($request); |
| | | if (isset($_COOKIE[$this->cookieFakePicassoName])) { |
New file |
| | |
| | | <?php |
| | | |
| | | namespace App\Http\Requests; |
| | | |
| | | use App\Rules\KeysiteCheck; |
| | | use Illuminate\Contracts\Validation\Validator; |
| | | use Illuminate\Foundation\Http\FormRequest; |
| | | use Illuminate\Http\Exceptions\HttpResponseException; |
| | | use Illuminate\Validation\ValidationException; |
| | | |
| | | class genericPicasso extends FormRequest |
| | | { |
| | | |
| | | public function attributes() |
| | | { |
| | | return [ |
| | | 'format' => 'formato', |
| | | 'k' => 'keysite', |
| | | ]; |
| | | } |
| | | |
| | | /** |
| | | * Determine if the user is authorized to make this request. |
| | | * |
| | | * @return bool |
| | | */ |
| | | public function authorize() |
| | | { |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | | * Get the validation rules that apply to the request. |
| | | * |
| | | * @return array<string, mixed> |
| | | */ |
| | | public function rules() |
| | | { |
| | | return [ |
| | | 'format' => 'in:xml,json', |
| | | 'k' => ['required', new KeysiteCheck( request()->headers->get('referer') )], |
| | | ]; |
| | | } |
| | | |
| | | public function messages() |
| | | { |
| | | return [ |
| | | 'required' => 'Il campo :attribute è obbligatorio', |
| | | 'in' => 'Il campo :attribute dev\'essere valorizzato con: :values', |
| | | ]; |
| | | } |
| | | |
| | | protected function failedValidation(Validator $validator) |
| | | { |
| | | $errors = (new ValidationException($validator))->errors(); |
| | | throw new HttpResponseException( |
| | | response($errors, 422) |
| | | ); |
| | | } |
| | | } |
File was renamed from app/Http/Requests/getWebcustomerInformation.php |
| | |
| | | |
| | | namespace App\Http\Requests; |
| | | |
| | | use App\Rules\KeysiteCheck; |
| | | use Illuminate\Contracts\Validation\Validator; |
| | | use Illuminate\Foundation\Http\FormRequest; |
| | | |
| | | class getWebcustomerInformation extends FormRequest |
| | | class getSelectedMSISDNDetails extends FormRequest |
| | | { |
| | | |
| | | public function attributes() |
| | | { |
| | | return [ |
| | | 'fiscal_code' => 'codice fiscale', |
| | | 'k' => 'keysite', |
| | | 'ms' => 'msisdn number', |
| | | ]; |
| | | } |
| | | |
| | |
| | | public function rules() |
| | | { |
| | | return [ |
| | | 'k' => 'required|int', |
| | | 't' => 'required|string' |
| | | 'k' => ['required', new KeysiteCheck( request()->headers->get('referer') )], |
| | | 'ms' => 'required', |
| | | ]; |
| | | } |
| | | |
| | | public function messages() |
| | | { |
| | | return [ |
| | | 'required' => 'Il campo :attribute è obbligatorio', |
| | | 'in' => 'Il campo :attribute dev\'essere valorizzato con: :values', |
| | | ]; |
| | | } |
| | | |
| | | protected function failedValidation(Validator $validator) |
New file |
| | |
| | | <?php |
| | | |
| | | namespace App\Rules; |
| | | |
| | | use Illuminate\Contracts\Validation\Rule; |
| | | |
| | | class KeysiteCheck implements Rule |
| | | { |
| | | |
| | | public $referer; |
| | | |
| | | /** |
| | | * Create a new rule instance. |
| | | * |
| | | * @return void |
| | | */ |
| | | public function __construct($referer) |
| | | { |
| | | $this->referer = $referer; |
| | | } |
| | | |
| | | /** |
| | | * Determine if the validation rule passes. |
| | | * |
| | | * @param string $attribute |
| | | * @param mixed $value |
| | | * @return bool |
| | | */ |
| | | public function passes($attribute, $value) |
| | | { |
| | | if (config('custom.enforce_parameters',false)) { |
| | | $refererList = config('custom.referer-keysite-match', []); |
| | | if (isset($refererList[$this->referer])) { |
| | | return ($refererList[$this->referer] === $value); |
| | | } |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | | * Get the validation error message. |
| | | * |
| | | * @return string |
| | | */ |
| | | public function message() |
| | | { |
| | | return 'Il keysite fornito non corrisponde con il referer'; |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | 'compressed_responses' => env('GZIP_COMPRESS_RESPONSES', false), |
| | | |
| | | 'enforce_parameters' => env('ENFORCE_REQUESTS_PARAMETERS', false), |
| | | |
| | | 'portals_shortcuts' => [ |
| | | "assistenza.local.it" => "https://assistenza.local.it/dual", |
| | | "pianizero" => "#", |
| | |
| | | "elite" => "#", |
| | | "faidate corporate" => "#", |
| | | |
| | | ], |
| | | |
| | | 'referer-keysite-match' => [ |
| | | 'assistenza.vodafone.it' => '2000062', |
| | | 'pre-assistenza.vodafone.it' => '2000061', |
| | | 'assistenza.local.it' => '2000061' |
| | | ] |
| | | |
| | | ]; |
| | |
| | | LOG_PROCESSED_REQUESTS=false |
| | | LOG_REJECTED_REQUESTS=true |
| | | |
| | | ENFORCE_REQUESTS_PARAMETERS=false |
| | | |
| | | GZIP_COMPRESS_RESPONSES=false |
| | | |