- Ajout du service PasswordSecurityService conforme NIST SP 800-63B - Vérification des mots de passe contre la base Have I Been Pwned - Validation : minimum 8 caractères, maximum 64 caractères - Pas d'exigences de composition obligatoires (conforme NIST) - Intégration dans LoginController et UserController - Génération de mots de passe sécurisés non compromis 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
65 lines
2.2 KiB
PHP
Executable File
65 lines
2.2 KiB
PHP
Executable File
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
require_once __DIR__ . '/bootstrap.php';
|
|
|
|
// Chargement des fichiers principaux
|
|
require_once __DIR__ . '/src/Config/AppConfig.php';
|
|
require_once __DIR__ . '/src/Core/Database.php';
|
|
require_once __DIR__ . '/src/Core/AddressesDatabase.php';
|
|
require_once __DIR__ . '/src/Core/Router.php';
|
|
require_once __DIR__ . '/src/Core/Session.php';
|
|
require_once __DIR__ . '/src/Core/Request.php';
|
|
require_once __DIR__ . '/src/Core/Response.php';
|
|
require_once __DIR__ . '/src/Utils/ClientDetector.php';
|
|
require_once __DIR__ . '/src/Services/LogService.php';
|
|
|
|
// Chargement des contrôleurs
|
|
require_once __DIR__ . '/src/Controllers/LogController.php';
|
|
require_once __DIR__ . '/src/Controllers/LoginController.php';
|
|
require_once __DIR__ . '/src/Controllers/EntiteController.php';
|
|
require_once __DIR__ . '/src/Controllers/UserController.php';
|
|
require_once __DIR__ . '/src/Controllers/OperationController.php';
|
|
require_once __DIR__ . '/src/Controllers/PassageController.php';
|
|
require_once __DIR__ . '/src/Controllers/VilleController.php';
|
|
require_once __DIR__ . '/src/Controllers/FileController.php';
|
|
require_once __DIR__ . '/src/Controllers/SectorController.php';
|
|
require_once __DIR__ . '/src/Controllers/PasswordController.php';
|
|
|
|
// Initialiser la configuration
|
|
$appConfig = AppConfig::getInstance();
|
|
$config = $appConfig->getFullConfig();
|
|
|
|
// Initialiser la base de données principale
|
|
Database::init($config['database']);
|
|
|
|
// Initialiser la base de données des adresses
|
|
AddressesDatabase::init($appConfig->getAddressesDatabaseConfig());
|
|
|
|
// Configuration CORS
|
|
$origin = $_SERVER['HTTP_ORIGIN'] ?? '';
|
|
$allowedOrigins = $config['api']['allowed_origins'];
|
|
|
|
// Vérifier si l'origine est autorisée
|
|
if (in_array($origin, $allowedOrigins)) {
|
|
header('Access-Control-Allow-Origin: ' . $origin);
|
|
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
|
|
header('Access-Control-Allow-Headers: Content-Type, Authorization, X-App-Identifier');
|
|
header('Access-Control-Allow-Credentials: true');
|
|
}
|
|
|
|
// Gestion des requêtes preflight (OPTIONS)
|
|
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
|
|
exit(0);
|
|
}
|
|
|
|
// Initialiser la session
|
|
Session::start();
|
|
|
|
// Créer l'instance de routeur
|
|
$router = new Router();
|
|
|
|
// Gérer la requête
|
|
$router->handle();
|