From 3a3415c61e301d61f559178050640fc50f786940 Mon Sep 17 00:00:00 2001 From: Noah Lancien Date: Mon, 12 Jan 2026 16:05:00 +0100 Subject: [PATCH] feat: added admin-secure --- .env.example | 6 + composer.json | 1 + composer.lock | 272 +++++++++++++++++++++++++++++++++++++++++++++- manifest.yaml | 2 + routes/web-bo.php | 2 +- 5 files changed, 281 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index 2106b48..8b21d4b 100644 --- a/.env.example +++ b/.env.example @@ -81,3 +81,9 @@ SAML2_DEFAULT_TENANT_UUID= SAML2_SP_CERT_x509= SAML2_SP_CERT_PRIVATEKEY= SAML2_CONTACT_TECHNICAL_EMAIL= + +# UWIL ADMIN SECURE +# - LIST SEPARATED WITH ',' (Required) +UWIL_ADMIN_SECURE_CIDR_LIST="" +# - LIST SEPARATED WITH ',' (Optional) +UWIL_ADMIN_SECURE_CIDR_PROJECT_ALLOWED_LIST="" diff --git a/composer.json b/composer.json index 149415d..cd9810a 100644 --- a/composer.json +++ b/composer.json @@ -24,6 +24,7 @@ "mews/purifier": "^3.4", "propaganistas/laravel-phone": "^5.1", "sentry/sentry-laravel": "*", + "uwil/admin-secure-laravel": "^5.0", "uwil/k8s-laravel": "^1.2", "uwil/sitemap-generator": "^3.0" }, diff --git a/composer.lock b/composer.lock index b4139a4..168906b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "68c1eb6ee6b7106c9ef47c016654ed9a", + "content-hash": "8dc968ea4c1a1143154350cf6652c9e3", "packages": [ { "name": "24slides/laravel-saml2", @@ -655,6 +655,102 @@ ], "time": "2024-10-09T13:47:03+00:00" }, + { + "name": "dxw/cidr", + "version": "v3.2.0", + "source": { + "type": "git", + "url": "https://github.com/dxw/cidr.git", + "reference": "b07dd398f5a93441f57a687982bc7d0ffb96729a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dxw/cidr/zipball/b07dd398f5a93441f57a687982bc7d0ffb96729a", + "reference": "b07dd398f5a93441f57a687982bc7d0ffb96729a", + "shasum": "" + }, + "require": { + "dxw/result": "^1.0", + "php": "^7.4||^8.1", + "phpseclib/phpseclib": "^2.0" + }, + "require-dev": { + "dxw/php-cs-fixer-config": "^2.0", + "kahlan/kahlan": "^5.2", + "vimeo/psalm": "^5.14" + }, + "type": "library", + "autoload": { + "psr-4": { + "Dxw\\CIDR\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "dxw", + "email": "team@govpress.com", + "homepage": "https://www.dxw.com" + } + ], + "description": "IP address matching with CIDR ranges", + "homepage": "https://github.com/dxw/cidr", + "support": { + "issues": "https://github.com/dxw/cidr/issues", + "source": "https://github.com/dxw/cidr/tree/v3.2.0" + }, + "time": "2023-08-14T10:14:13+00:00" + }, + { + "name": "dxw/result", + "version": "v1.0.6", + "source": { + "type": "git", + "url": "https://github.com/dxw/result.git", + "reference": "d554bb10f0cf74056ccd26526688e194652eef79" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dxw/result/zipball/d554bb10f0cf74056ccd26526688e194652eef79", + "reference": "d554bb10f0cf74056ccd26526688e194652eef79", + "shasum": "" + }, + "require": { + "php": "^7.4||^8.1" + }, + "require-dev": { + "dxw/php-cs-fixer-config": "^2.1", + "kahlan/kahlan": "^5.2", + "vimeo/psalm": "^4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Dxw\\Result\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mallory Adams", + "email": "mallory@dxw.com", + "homepage": "https://www.dxw.com/" + } + ], + "description": "Result values", + "homepage": "https://github.com/dxw/result", + "support": { + "issues": "https://github.com/dxw/result/issues", + "source": "https://github.com/dxw/result/tree/v1.0.6" + }, + "time": "2023-07-19T11:14:28+00:00" + }, { "name": "egulias/email-validator", "version": "4.0.4", @@ -3657,6 +3753,116 @@ ], "time": "2024-07-20T21:41:07+00:00" }, + { + "name": "phpseclib/phpseclib", + "version": "2.0.50", + "source": { + "type": "git", + "url": "https://github.com/phpseclib/phpseclib.git", + "reference": "1815ddd00195487cc922577751c175f339f4e20f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/1815ddd00195487cc922577751c175f339f4e20f", + "reference": "1815ddd00195487cc922577751c175f339f4e20f", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phing/phing": "~2.7", + "phpunit/phpunit": "^4.8.35|^5.7|^6.0|^9.4", + "squizlabs/php_codesniffer": "~2.0" + }, + "suggest": { + "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", + "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", + "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", + "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations.", + "ext-xml": "Install the XML extension to load XML formatted public keys." + }, + "type": "library", + "autoload": { + "files": [ + "phpseclib/bootstrap.php" + ], + "psr-4": { + "phpseclib\\": "phpseclib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jim Wigginton", + "email": "terrafrost@php.net", + "role": "Lead Developer" + }, + { + "name": "Patrick Monnerat", + "email": "pm@datasphere.ch", + "role": "Developer" + }, + { + "name": "Andreas Fischer", + "email": "bantu@phpbb.com", + "role": "Developer" + }, + { + "name": "Hans-Jürgen Petrich", + "email": "petrich@tronic-media.com", + "role": "Developer" + }, + { + "name": "Graham Campbell", + "email": "graham@alt-three.com", + "role": "Developer" + } + ], + "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", + "homepage": "http://phpseclib.sourceforge.net", + "keywords": [ + "BigInteger", + "aes", + "asn.1", + "asn1", + "blowfish", + "crypto", + "cryptography", + "encryption", + "rsa", + "security", + "sftp", + "signature", + "signing", + "ssh", + "twofish", + "x.509", + "x509" + ], + "support": { + "issues": "https://github.com/phpseclib/phpseclib/issues", + "source": "https://github.com/phpseclib/phpseclib/tree/2.0.50" + }, + "funding": [ + { + "url": "https://github.com/terrafrost", + "type": "github" + }, + { + "url": "https://www.patreon.com/phpseclib", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib", + "type": "tidelift" + } + ], + "time": "2025-12-15T11:48:50+00:00" + }, { "name": "propaganistas/laravel-phone", "version": "5.3.6", @@ -7543,6 +7749,70 @@ }, "time": "2024-12-21T16:25:41+00:00" }, + { + "name": "uwil/admin-secure-laravel", + "version": "5.0.0", + "source": { + "type": "git", + "url": "git@lab.s-web.fr:ldc-web/projets/ldc-web-admin-secure-laravel.git", + "reference": "7d9c052db4318752a312dc9763bc8c31ea053aa2" + }, + "dist": { + "type": "zip", + "url": "https://lab.s-web.fr/api/v4/projects/20/packages/composer/archives/uwil/admin-secure-laravel.zip?sha=7d9c052db4318752a312dc9763bc8c31ea053aa2", + "reference": "7d9c052db4318752a312dc9763bc8c31ea053aa2", + "shasum": "" + }, + "require": { + "dxw/cidr": "^3.2", + "illuminate/support": "~11|~12", + "laravel/framework": "~11|~12", + "php": "^8.3", + "symfony/options-resolver": "^7.0" + }, + "require-dev": { + "larastan/larastan": "^2.9", + "orchestra/testbench": "^9", + "phpunit/php-code-coverage": "^11", + "phpunit/phpunit": "^11", + "slevomat/coding-standard": "^8", + "squizlabs/php_codesniffer": "^3" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Uwil\\AdminSecure\\Laravel\\AdminSecureServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Uwil\\AdminSecure\\Laravel\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "Uwil\\AdminSecure\\Laravel\\Tests\\": "tests" + } + }, + "scripts": { + "test": [ + "vendor/bin/phpunit" + ], + "post-autoload-dump": [ + "@php ./vendor/bin/testbench package:discover --ansi" + ] + }, + "license": [ + "MIT" + ], + "description": "Restrict access to LDC Network", + "support": { + "email": "digital@ldc.fr", + "issues": "https://lab.s-web.fr/ldc-web/projets/ldc-web-admin-secure-laravel/-/issues" + } + }, { "name": "uwil/k8s-laravel", "version": "1.4.0", diff --git a/manifest.yaml b/manifest.yaml index cdf1080..b5e5f87 100644 --- a/manifest.yaml +++ b/manifest.yaml @@ -35,6 +35,8 @@ data: SAML2_CONTACT_TECHNICAL_EMAIL: "${APP_SAML2_CONTACT_TECHNICAL_EMAIL}" SAML2_CONTACT_SUPPORT_EMAIL: "${APP_SAML2_CONTACT_SUPPORT_EMAIL}" SAML2_DEFAULT_TENANT_UUID: "${APP_SAML2_DEFAULT_TENANT_UUID}" + UWIL_ADMIN_SECURE_CIDR_LIST: "${APP_GLOBAL_UWIL_ADMIN_SECURE_CIDR_LIST}" + --- apiVersion: v1 kind: PersistentVolumeClaim diff --git a/routes/web-bo.php b/routes/web-bo.php index a76b43a..27f01c0 100644 --- a/routes/web-bo.php +++ b/routes/web-bo.php @@ -18,7 +18,7 @@ use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Route; -Route::prefix('bo') +Route::middleware(['admin-secure'])->prefix('bo') ->name('bo.') ->group(function () { // * Authenticable routes