Como adicionar/cadastrar novas URL's aceitaveis nas requisicoes REST do magento 2
Ir para navegação
Ir para pesquisar
Vá até o arquivo php:
vendor/magento/module-webapi/controller/rest/requestValidator.php
A função resposável pela validação é checkPermissions().
/** * Perform authentication and authorization. * * @throws \Magento\Framework\Exception\AuthorizationException * @return void */ private function checkPermissions() { $route = $this->router->match($this->request); if (!$this->authorization->isAllowed($route->getAclResources())) { // SE NAO ESTA AUTORIZADO $params = ['resources' => implode(', ', $route->getAclResources())]; throw new AuthorizationException( __(AuthorizationException::NOT_AUTHORIZED, $params) ); }else{ // SE ESTA AUTORIZADO $naoAutorizado = [ "Não autorizado" => "Voce nao tem autorizacao para fazer modificacoes na url"]; $requisicaoCompleta = $this->request->getServer()->HTTP_HOST.$this->request->getServer()->REQUEST_URI; // SE O USUARIO TEM ACESSO A ESTE WEBSITE // INSERIR CONDICIONAIS AQUIs throw new AuthorizationException( __(AuthorizationException::NOT_AUTHORIZED, $this->request->getServer()) //__(AuthorizationException::NOT_AUTHORIZED, $this->request->getServer()->REQUEST_URI) ); } }
As condicionais devem ser adiciondas dentro do bloco ELSE.
Nota: Se precisar ver toda a requisição de acesso feita pela REST API, adicione a função dentro do throw para que você possa vê-lo no postman!
$this->request->getServer()
Você deve ver algo como o a seguir, tentando acessar qualquer requição COM AUTORIZAÇÃO
{ "message": "Consumer is not authorized to access %resources", "parameters": [ { "REDIRECT_HTTP_AUTHORIZATION": "Bearer cd2xrjeuxheqxh8254h4wbiuu3atne10", "REDIRECT_STATUS": "200", "HTTP_AUTHORIZATION": "Bearer cd2xrjeuxheqxh8254h4wbiuu3atne10", "HTTP_HOST": "127.0.0.1", "HTTP_X_REAL_IP": "172.23.0.1", "HTTP_X_FORWARDED_FOR": "172.23.0.1", "HTTP_CONNECTION": "close", "HTTP_CACHE_CONTROL": "no-cache", "HTTP_POSTMAN_TOKEN": "92ffad1f-0ae5-452f-ad0a-be0ddd84698d", "HTTP_USER_AGENT": "PostmanRuntime/7.1.1", "HTTP_ACCEPT": "*/*", "HTTP_COOKIE": "PHPSESSID=cb77079e25324ae5597319a9998db1f1", "HTTP_ACCEPT_ENCODING": "gzip, deflate", "PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "SERVER_SIGNATURE": "<address>Apache/2.4.10 (Debian) Server at 127.0.0.1 Port 80</address>\n", "SERVER_SOFTWARE": "Apache/2.4.10 (Debian)", "SERVER_NAME": "127.0.0.1", "SERVER_ADDR": "172.23.0.2", "SERVER_PORT": "80", "REMOTE_ADDR": "172.23.0.4", "DOCUMENT_ROOT": "/var/www/html", "REQUEST_SCHEME": "http", "CONTEXT_PREFIX": "", "CONTEXT_DOCUMENT_ROOT": "/var/www/html", "SERVER_ADMIN": "webmaster@localhost", "SCRIPT_FILENAME": "/var/www/html/index.php", "REMOTE_PORT": "53272", "REDIRECT_QUERY_STRING": "searchCriteria=", "REDIRECT_URL": "/rest/ts/V1/orders", "GATEWAY_INTERFACE": "CGI/1.1", "SERVER_PROTOCOL": "HTTP/1.0", "REQUEST_METHOD": "GET", "QUERY_STRING": "searchCriteria=", "REQUEST_URI": "/rest/ts/V1/orders?searchCriteria=", "SCRIPT_NAME": "/index.php", "PHP_SELF": "/index.php", "REQUEST_TIME_FLOAT": 1516874099.803, "REQUEST_TIME": 1516874099, "argv": [ "searchCriteria=" ], "argc": 1 } ] }