From fbe25517e2e411b3136c0aad5b7be5acd403fe97 Mon Sep 17 00:00:00 2001 From: jayvirsinh_gohil Date: Fri, 3 Dec 2021 16:24:43 +0530 Subject: [PATCH 1/2] add cronjob.org support --- .env.example | 2 ++ .../V1/Webhook/CronJobOrgController.php | 23 +++++++++++++++++ app/Http/Kernel.php | 1 + app/Http/Middleware/CronJobOrgMiddleware.php | 25 +++++++++++++++++++ config/services.php | 3 +++ routes/api.php | 3 +++ 6 files changed, 57 insertions(+) create mode 100644 app/Http/Controllers/V1/Webhook/CronJobOrgController.php create mode 100644 app/Http/Middleware/CronJobOrgMiddleware.php diff --git a/.env.example b/.env.example index 8e98cb86..c8d4e223 100644 --- a/.env.example +++ b/.env.example @@ -36,3 +36,5 @@ SANCTUM_STATEFUL_DOMAINS=crater.test SESSION_DOMAIN=crater.test TRUSTED_PROXIES="*" + +CRON_JOB_AUTH_TOKEN="" diff --git a/app/Http/Controllers/V1/Webhook/CronJobOrgController.php b/app/Http/Controllers/V1/Webhook/CronJobOrgController.php new file mode 100644 index 00000000..dcc922ae --- /dev/null +++ b/app/Http/Controllers/V1/Webhook/CronJobOrgController.php @@ -0,0 +1,23 @@ +json(['success' => true]); + } +} diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 36f04843..af98bef2 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -69,6 +69,7 @@ class Kernel extends HttpKernel 'redirect-if-unauthenticated' => \Crater\Http\Middleware\RedirectIfUnauthorized::class, 'customer-guest' => \Crater\Http\Middleware\CustomerGuest::class, 'company' => \Crater\Http\Middleware\CompanyMiddleware::class, + 'cron-job-org' => \Crater\Http\Middleware\CronJobOrgMiddleware::class, ]; /** diff --git a/app/Http/Middleware/CronJobOrgMiddleware.php b/app/Http/Middleware/CronJobOrgMiddleware.php new file mode 100644 index 00000000..74250c82 --- /dev/null +++ b/app/Http/Middleware/CronJobOrgMiddleware.php @@ -0,0 +1,25 @@ +header('Authorization-token')) { + return $next($request); + } + + return response()->json(['unauthorized'], 401); + } +} diff --git a/config/services.php b/config/services.php index d9b0607f..e14d6063 100644 --- a/config/services.php +++ b/config/services.php @@ -62,4 +62,7 @@ return [ 'redirect' => env('GITHUB_REDIRECT_URL'), ], + 'cron_job_org' => [ + 'auth_token' => env('CRON_JOB_AUTH_TOKEN', 0) + ], ]; diff --git a/routes/api.php b/routes/api.php index 6e62f1c2..5b75c8eb 100644 --- a/routes/api.php +++ b/routes/api.php @@ -80,6 +80,7 @@ use Crater\Http\Controllers\V1\Installation\FinishController; use Crater\Http\Controllers\V1\Installation\LoginController; use Crater\Http\Controllers\V1\Installation\OnboardingWizardController; use Crater\Http\Controllers\V1\Installation\RequirementsController; +use Crater\Http\Controllers\V1\Webhook\CronJobOrgController; use Illuminate\Support\Facades\Route; /* @@ -437,3 +438,5 @@ Route::prefix('/v1')->group(function () { Route::apiResource('/users', UsersController::class); }); }); + +Route::get('/cron', CronJobOrgController::class)->middleware('cron-job-org'); From 72398f0ac9ba32e4e24c0027d34cbd18809e8b48 Mon Sep 17 00:00:00 2001 From: jayvirsinh_gohil Date: Sat, 4 Dec 2021 15:42:45 +0530 Subject: [PATCH 2/2] rename cron job issue --- .../{CronJobOrgController.php => CronJobController.php} | 2 +- app/Http/Kernel.php | 2 +- .../{CronJobOrgMiddleware.php => CronJobMiddleware.php} | 4 ++-- config/services.php | 2 +- routes/api.php | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) rename app/Http/Controllers/V1/Webhook/{CronJobOrgController.php => CronJobController.php} (91%) rename app/Http/Middleware/{CronJobOrgMiddleware.php => CronJobMiddleware.php} (71%) diff --git a/app/Http/Controllers/V1/Webhook/CronJobOrgController.php b/app/Http/Controllers/V1/Webhook/CronJobController.php similarity index 91% rename from app/Http/Controllers/V1/Webhook/CronJobOrgController.php rename to app/Http/Controllers/V1/Webhook/CronJobController.php index dcc922ae..7acd8e68 100644 --- a/app/Http/Controllers/V1/Webhook/CronJobOrgController.php +++ b/app/Http/Controllers/V1/Webhook/CronJobController.php @@ -6,7 +6,7 @@ use Crater\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\Artisan; -class CronJobOrgController extends Controller +class CronJobController extends Controller { /** * Handle the incoming request. diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index af98bef2..def40b1f 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -69,7 +69,7 @@ class Kernel extends HttpKernel 'redirect-if-unauthenticated' => \Crater\Http\Middleware\RedirectIfUnauthorized::class, 'customer-guest' => \Crater\Http\Middleware\CustomerGuest::class, 'company' => \Crater\Http\Middleware\CompanyMiddleware::class, - 'cron-job-org' => \Crater\Http\Middleware\CronJobOrgMiddleware::class, + 'cron-job' => \Crater\Http\Middleware\CronJobMiddleware::class, ]; /** diff --git a/app/Http/Middleware/CronJobOrgMiddleware.php b/app/Http/Middleware/CronJobMiddleware.php similarity index 71% rename from app/Http/Middleware/CronJobOrgMiddleware.php rename to app/Http/Middleware/CronJobMiddleware.php index 74250c82..379b3ab7 100644 --- a/app/Http/Middleware/CronJobOrgMiddleware.php +++ b/app/Http/Middleware/CronJobMiddleware.php @@ -5,7 +5,7 @@ namespace Crater\Http\Middleware; use Closure; use Illuminate\Http\Request; -class CronJobOrgMiddleware +class CronJobMiddleware { /** * Handle an incoming request. @@ -16,7 +16,7 @@ class CronJobOrgMiddleware */ public function handle(Request $request, Closure $next) { - if ($request->header('Authorization-token')) { + if ($request->header('x-authorization-token') && $request->header('x-authorization-token') == config('services.cron_job.auth_token')) { return $next($request); } diff --git a/config/services.php b/config/services.php index e14d6063..c9254a8b 100644 --- a/config/services.php +++ b/config/services.php @@ -62,7 +62,7 @@ return [ 'redirect' => env('GITHUB_REDIRECT_URL'), ], - 'cron_job_org' => [ + 'cron_job' => [ 'auth_token' => env('CRON_JOB_AUTH_TOKEN', 0) ], ]; diff --git a/routes/api.php b/routes/api.php index 5b75c8eb..bd69ad47 100644 --- a/routes/api.php +++ b/routes/api.php @@ -80,7 +80,7 @@ use Crater\Http\Controllers\V1\Installation\FinishController; use Crater\Http\Controllers\V1\Installation\LoginController; use Crater\Http\Controllers\V1\Installation\OnboardingWizardController; use Crater\Http\Controllers\V1\Installation\RequirementsController; -use Crater\Http\Controllers\V1\Webhook\CronJobOrgController; +use Crater\Http\Controllers\V1\Webhook\CronJobController; use Illuminate\Support\Facades\Route; /* @@ -439,4 +439,4 @@ Route::prefix('/v1')->group(function () { }); }); -Route::get('/cron', CronJobOrgController::class)->middleware('cron-job-org'); +Route::get('/cron', CronJobController::class)->middleware('cron-job');