fix(licence): refus de la 2e couche indiscernable d'une route inconnue

Le 404 a corps vide etait remplace par la page HTML d'Indy, distincte du
404 JSON d'une route inexistante : on pouvait lister les routes reelles.
La 2e couche renvoie maintenant exactement le meme JSON.

Ajoute un exe d'essai qui saute l'ecran d'activation, pour eprouver la
2e couche depuis l'application. Define de compilation
LICENCE_TEST_SKIP_SCREEN, jamais un reglage : un interrupteur dans
config.txt ferait sauter la 1re couche sans rapiecage. Build dedie,
.dcu a part ; verifie que seul l'exe d'essai porte le define.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
r-zakarya
2026-09-17 05:36:28 +01:00
parent 16e0f3bd78
commit d5234e1390
3 changed files with 35 additions and 5 deletions
+18
View File
@@ -476,6 +476,24 @@ l'ecran ne donne plus acces aux donnees.
atteignent ce point ; les fichiers de l'ecran d'activation passent par
`TryServeEmbedded`, non garde — sinon l'ecran qui permet de s'activer ne se
chargerait plus. **404**, pas 403, comme le reste du verrouillage.
- **Le refus est le MEME 404 qu'une route inexistante** (`TJSONHelper.SendError(404,
'Not found')`). Un corps vide ne suffisait pas : Indy le remplace par sa page
HTML, distincte du JSON d'une route inconnue — ce qui revelait les routes
existantes (vu a l'essai F de LICENCE-TESTS.md).
- **Exe d'essai qui saute l'ecran** : define `LICENCE_TEST_SKIP_SCREEN`, qui fait
repondre `licence/status` ok. **A la compilation et jamais par un reglage** —
un interrupteur dans `config.txt`, que n'importe qui cree a cote de l'exe,
ferait sauter la 1re couche sans rapiecage. Build dedie, dossiers exe ET
`.dcu` a part (des unites compilees avec ce define ne doivent jamais etre
liees dans un exe normal) ; `;` des defines echappe en `%3B` pour MSBuild :
```
msbuild PMServer.dproj /p:Config=Release /p:Platform=Win32
"/p:DCC_Define=RELEASE%3BLICENCE_TEST_SKIP_SCREEN"
"/p:DCC_ExeOutput=E:\password manager\Win32-TEST-licence"
"/p:DCC_DcuOutput=E:\password manager\dcu\Win32-TEST-licence"
```
Verifier apres build : la chaine `LICENCE TEST BUILD` (UTF-16) ne doit
exister que dans l'exe d'essai.
- Un **oui** est retenu pour le processus (le test est sur le chemin de chaque
requete) ; un **non** jamais, pour qu'une activation faite juste avant soit
vue a la requete suivante.