Modificiones para que funcione el Shield y updates

This commit is contained in:
imnavajas
2024-05-01 15:33:01 +02:00
parent f80d0dc52a
commit c78b3d8488
35 changed files with 1720 additions and 727 deletions

View File

@ -1,28 +0,0 @@
<?php
namespace App\Filters;
use CodeIgniter\API\ResponseTrait;
use CodeIgniter\Filters\FilterInterface;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Config\Services;
use Exception;
class JWTAuthFilter implements FilterInterface
{
public function before(RequestInterface $request, $arguments = null)
{
try {
helper('jwt');
jwtValidateRequest(jwtRequest($request->getServer('HTTP_AUTHORIZATION')));
return $request;
} catch (Exception $e) {
return Services::response()->setJSON(['error' => $e->getMessage()])->setStatusCode(ResponseInterface::HTTP_UNAUTHORIZED);
}
}
public function after(RequestInterface $request, ResponseInterface $response, $arguments = null)
{
}
}

View File

@ -12,7 +12,7 @@ class LoginAuthFilter implements FilterInterface
public function before(RequestInterface $request, $arguments = null)
{
try {
if(!$this->validateIgnoreControllerAccess()){
/*if(!$this->validateIgnoreControllerAccess()){
$session = session();
$token = $session->get('token')??'';
$tfa = $session->get('tfa')??false;
@ -24,7 +24,7 @@ class LoginAuthFilter implements FilterInterface
}else{
$this->validateControllerAccess();
}
}
}*/
} catch (Exception $e) {
}

View File

@ -1,43 +0,0 @@
<?php
namespace App\Filters;
use App\Models\SettingsModel;
use CodeIgniter\API\ResponseTrait;
use CodeIgniter\Filters\FilterInterface;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Config\Services;
use Exception;
class ThrottlerFilter implements FilterInterface
{
use ResponseTrait;
public function before(RequestInterface $request, $arguments = null)
{
try {
$throttler = Services::throttler();
$ip = $request->getIPAddress();
$settingsBase = new SettingsModel();
$settings = $settingsBase->first()??[];
if(!$settings['enable_api']){
return Services::response()->setJSON(['error' => 'ApiRest is currently disabled.'])->setStatusCode(ResponseInterface::HTTP_UNAUTHORIZED);
}
if($settings['block_external_api']){
if($ip != $settings['ip_allowed_api']??''){
return Services::response()->setJSON(['error' => 'Endpoint access from external domains is not allowed.'])->setStatusCode(ResponseInterface::HTTP_UNAUTHORIZED);
}
if ($throttler->check($ip, 60, MINUTE) === false)
{
return Services::response()->setStatusCode(429);
}
}
} catch (Exception $e) {
return Services::response()->setJSON(['error' => $e->getMessage()])->setStatusCode(ResponseInterface::HTTP_UNAUTHORIZED);
}
}
public function after(RequestInterface $request, ResponseInterface $response, $arguments = null)
{
}
}