# darkauth Bibliothèque et outillage d'authentification PHP orientés traçabilité d'accès, contextualisation des requêtes HTTP et génération de jetons pour intégration Web/XSL sur infrastructure Apache2. Le projet est publié par **Chapuis Nicolas** sous le pseudonyme Nicolas "DarkHack" Chapuis. [file:2] ## Présentation `darkauth` structure les informations de connexion autour de plusieurs objets métier, notamment `Ip`, `Browser`, `Device`, `Ressource`, `Access`, ainsi que des composants de jetons comme `xslToken` et `cookieToken`. Le patch montre aussi une brique utilitaire `DwString` dans l'espace de noms `darkauth`, avec des conversions strictes, des helpers de chaînes et des fonctions de normalisation réutilisables. [file:2] Le code est pensé pour fonctionner avec une pile PHP + Apache2 et s'appuie sur l'environnement de requête fourni par `$_SERVER`, encapsulé via des méthodes du type `fromApache2(...)`. On voit également des points d'intégration XSL/XML et des règles `.htaccess` pour servir ou contrôler certains flux liés aux jetons. [file:2] ## Objectifs - Fournir une base d'authentification maison réutilisable sur infrastructure personnelle. [file:2] - Enregistrer et structurer le contexte d'accès HTTP, navigateur, terminal et ressource. [file:2] - Générer et exploiter des jetons dédiés à des usages Web, XSL et cookie. [file:2] - Préparer une diffusion publique en lecture seule après validation sur site externe puis sur nodeid personnel. [file:2] ## Architecture visible dans l'état actuel Les éléments suivants apparaissent dans le patch actuellement partagé : [file:2] - `DwString.php`, utilitaires de chaînes et conversions strictes. [file:2] - `db/DwToken.php`, base liée aux jetons. [file:2] - `db/auth/Ip.php`, `Browser.php`, `Device.php`, `Ressource.php`, `Access.php`, pour modéliser une requête et son contexte. [file:2] - `db/auth/xslToken.php` et `db/auth/cookieToken.php`, pour les jetons applicatifs. [file:2] - Des entrées Web de test ou d'exposition comme `www-test/test.php`, `xsl/.htaccess` et plusieurs fichiers XSL. [file:2] ## Dépendances et contexte Le code montré dans le patch référence également des éléments externes au dépôt, par exemple `\bakuba\kernel\autoload\DwAutoLoadBoot::CLASS_SEPARATOR`. Cela signifie que le premier commit public doit soit embarquer les briques minimales nécessaires, soit documenter clairement les dépendances privées encore attendues. [file:2] Le projet vise une publication personnelle, distincte de l'association, avec attribution explicite à Chapuis Nicolas. La diffusion prévue est en lecture seule sur un dépôt Subversion servi par Apache2 sur un nodeid personnel lié à arcelec.fr, après une boucle de test et de déploiement propre. [file:2] ## État de publication visé Le dépôt public initial a vocation à être complet dès le premier commit, afin d'éviter un historique public incomplet ou ambigu. La séquence cible est : nettoyage du code, tests sur site externe, validation sur nodeid personnel, puis publication en lecture seule. [file:2] ## Installation Le projet est encore en phase de préparation publique, donc les instructions exactes d'installation ne sont pas entièrement figées dans le patch partagé. D'après les fichiers présents, il faut a minima : [file:2] - Un environnement PHP compatible avec le code orienté objets visible dans le patch. [file:2] - Apache2 avec gestion de `.htaccess` et, selon les usages, des modules comme `headers` et `rewrite`. [file:2] - L'arborescence du projet respectée, notamment autour de `db/`, `xsl/` et des points d'entrée Web de test. [file:2] - Les dépendances internes éventuelles non encore publiées. [file:2] ## Exemple de logique d'entrée Le flux visible dans le patch suit une chaîne de construction à partir de l'environnement HTTP : [file:2] 1. Création de l'objet IP à partir de `$_SERVER`. [file:2] 2. Création du navigateur à partir de l'IP et des en-têtes Apache2. [file:2] 3. Création du terminal, puis de la ressource, puis de l'accès. [file:2] 4. Utilisation de ces objets pour produire ou récupérer un jeton XSL ou cookie. [file:2] ## Licence Les fichiers du patch portent un en-tête `Licensed under the Apache License, Version 2.0`, avec référence explicite à l'URL de la licence et aux clauses de non-garantie. Sauf mention contraire dans le dépôt final, le projet doit donc être considéré comme publié sous Apache License 2.0. [file:2] ## Auteur Auteur : Nicolas "DarkHack" Chapuis. [file:2] Publication publique prévue à titre personnel, sous le nom **Chapuis Nicolas**, et non au nom de l'association. [file:2] ## Premier commit public Pour un premier commit propre, il serait pertinent d'inclure dès l'origine : [file:2] - Le code source nécessaire à un checkout cohérent. [file:2] - Le texte complet de la licence dans un fichier `LICENSE`. [file:2] - Un `NOTICE` ou une section auteur si tu veux séparer identité civile et pseudonyme. [file:2] - Un mini guide de déploiement Apache2/Subversion en lecture seule. [file:2] - Une note claire sur ce qui est déjà stable, expérimental ou encore lié à une infra privée. [file:2]