diff options
-rw-r--r-- | po/fr.po | 244 | ||||
-rw-r--r-- | po/webid-oidc.pot | 230 | ||||
-rw-r--r-- | src/scm/webid-oidc/Makefile.am | 6 | ||||
-rw-r--r-- | src/scm/webid-oidc/catalog.scm | 264 | ||||
-rw-r--r-- | src/scm/webid-oidc/program.scm | 24 |
5 files changed, 545 insertions, 223 deletions
@@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: webid-oidc 0.0.0\n" "Report-Msgid-Bugs-To: vivien@planete-kraus.eu\n" -"POT-Creation-Date: 2021-07-27 16:04+0200\n" -"PO-Revision-Date: 2021-07-27 16:12+0200\n" +"POT-Creation-Date: 2021-07-28 16:56+0200\n" +"PO-Revision-Date: 2021-07-28 16:58+0200\n" "Last-Translator: Vivien Kraus <vivien@planete-kraus.eu>\n" "Language-Team: French <vivien@planete-kraus.eu>\n" "Language: fr\n" @@ -1012,15 +1012,15 @@ msgid "Warning: ~a\n" msgstr "Avertissement : ~a\n" #: src/scm/webid-oidc/hello-world.scm:48 src/scm/webid-oidc/example-app.scm:116 -#: src/scm/webid-oidc/program.scm:204 +#: src/scm/webid-oidc/program.scm:217 msgid "command-line|version" msgstr "version" -#: src/scm/webid-oidc/hello-world.scm:50 src/scm/webid-oidc/program.scm:206 +#: src/scm/webid-oidc/hello-world.scm:50 src/scm/webid-oidc/program.scm:219 msgid "command-line|complete-corresponding-source" msgstr "code-source-correspondant-complet" -#: src/scm/webid-oidc/hello-world.scm:52 src/scm/webid-oidc/program.scm:208 +#: src/scm/webid-oidc/hello-world.scm:52 src/scm/webid-oidc/program.scm:221 msgid "command-line|help" msgstr "aide" @@ -1028,11 +1028,11 @@ msgstr "aide" msgid "command-line|port" msgstr "port" -#: src/scm/webid-oidc/hello-world.scm:56 src/scm/webid-oidc/program.scm:238 +#: src/scm/webid-oidc/hello-world.scm:56 src/scm/webid-oidc/program.scm:251 msgid "command-line|log-file" msgstr "fichier-journal" -#: src/scm/webid-oidc/hello-world.scm:58 src/scm/webid-oidc/program.scm:240 +#: src/scm/webid-oidc/hello-world.scm:58 src/scm/webid-oidc/program.scm:253 msgid "command-line|error-file" msgstr "fichier-erreur" @@ -1091,12 +1091,12 @@ msgstr "" " redirige la sortie d’erreur du programme vers ce fichier.\n" #: src/scm/webid-oidc/hello-world.scm:103 -#: src/scm/webid-oidc/example-app.scm:159 src/scm/webid-oidc/program.scm:544 +#: src/scm/webid-oidc/example-app.scm:159 src/scm/webid-oidc/program.scm:568 #, scheme-format msgid "~a version ~a\n" msgstr "~a version ~a\n" -#: src/scm/webid-oidc/hello-world.scm:112 src/scm/webid-oidc/program.scm:552 +#: src/scm/webid-oidc/hello-world.scm:112 src/scm/webid-oidc/program.scm:576 msgid "" "You are legally required to link to the complete corresponding source code.\n" msgstr "" @@ -1258,12 +1258,12 @@ msgstr "" msgid "There was an error: ~a\n" msgstr "Il y a eu une erreur : ~a\n" -#: src/scm/webid-oidc/program.scm:98 +#: src/scm/webid-oidc/program.scm:111 #, scheme-format msgid "~a: ~a: Internal server error: ~a\n" msgstr "~a : ~a : Erreur interne du serveur : ~a\n" -#: src/scm/webid-oidc/program.scm:112 +#: src/scm/webid-oidc/program.scm:125 #, scheme-format msgid "" "The client locale ~s can’t be approximated by system locale ~s (because ~a), " @@ -1272,88 +1272,88 @@ msgstr "" "La locale du client ~s ne peut pas être approchée par la locale système ~s " "(parce que ~a), on utilise C.\n" -#: src/scm/webid-oidc/program.scm:136 +#: src/scm/webid-oidc/program.scm:149 #, scheme-format msgid "~a: ~s ~a ~s ~a\n" msgstr "~a : ~s ~a ~s ~a\n" -#: src/scm/webid-oidc/program.scm:138 +#: src/scm/webid-oidc/program.scm:151 #, scheme-format msgid "~a: ~a (~a)" msgstr "~a : ~a (~a)" -#: src/scm/webid-oidc/program.scm:142 +#: src/scm/webid-oidc/program.scm:155 #, scheme-format msgid "~a: ~a" msgstr "~a : ~a" -#: src/scm/webid-oidc/program.scm:152 +#: src/scm/webid-oidc/program.scm:165 #, scheme-format msgid "(there was an error: ~a)" msgstr "(il y a eu une erreur : ~a)" -#: src/scm/webid-oidc/program.scm:210 +#: src/scm/webid-oidc/program.scm:223 msgid "command-line|server|port" msgstr "port" -#: src/scm/webid-oidc/program.scm:212 +#: src/scm/webid-oidc/program.scm:225 msgid "command-line|server|server-name" msgstr "nom-du-serveur" -#: src/scm/webid-oidc/program.scm:214 +#: src/scm/webid-oidc/program.scm:227 msgid "command-line|server|reverse-proxy|backend-uri" msgstr "uri-arrière-plan" -#: src/scm/webid-oidc/program.scm:216 +#: src/scm/webid-oidc/program.scm:229 msgid "command-line|server|reverse-proxy|header" msgstr "en-tête" -#: src/scm/webid-oidc/program.scm:218 +#: src/scm/webid-oidc/program.scm:231 msgid "command-line|server|issuer|key-file" msgstr "fichier-clé" -#: src/scm/webid-oidc/program.scm:220 +#: src/scm/webid-oidc/program.scm:233 msgid "command-line|server|issuer|subject" msgstr "sujet" -#: src/scm/webid-oidc/program.scm:222 +#: src/scm/webid-oidc/program.scm:235 msgid "command-line|server|issuer|encrypted-password" msgstr "mot-de-passe-chiffré" -#: src/scm/webid-oidc/program.scm:224 +#: src/scm/webid-oidc/program.scm:237 msgid "command-line|server|issuer|jwks-uri" msgstr "uri-jwks" -#: src/scm/webid-oidc/program.scm:226 +#: src/scm/webid-oidc/program.scm:239 msgid "command-line|server|issuer|authorization-endpoint-uri" msgstr "uri-terminal-autorisation" -#: src/scm/webid-oidc/program.scm:228 +#: src/scm/webid-oidc/program.scm:241 msgid "command-line|server|issuer|token-endpoint-uri" msgstr "uri-terminal-jeton" -#: src/scm/webid-oidc/program.scm:230 +#: src/scm/webid-oidc/program.scm:243 msgid "command-line|server|client-id" msgstr "id-client" -#: src/scm/webid-oidc/program.scm:232 +#: src/scm/webid-oidc/program.scm:245 msgid "command-line|server|redirect-uri" msgstr "uri-redirection" -#: src/scm/webid-oidc/program.scm:234 +#: src/scm/webid-oidc/program.scm:247 msgid "command-line|server|client-name" msgstr "nom-client" -#: src/scm/webid-oidc/program.scm:236 +#: src/scm/webid-oidc/program.scm:249 msgid "command-line|server|client-uri" msgstr "uri-client" -#: src/scm/webid-oidc/program.scm:265 +#: src/scm/webid-oidc/program.scm:278 #, scheme-format msgid "Usage: ~a COMMAND [OPTIONS]...\n" msgstr "Utilisation : ~a COMMANDE [OPTIONS]...\n" -#: src/scm/webid-oidc/program.scm:269 +#: src/scm/webid-oidc/program.scm:282 msgid "" "\n" "Run the webid-oidc COMMAND." @@ -1361,7 +1361,7 @@ msgstr "" "\n" "Exécute la COMMANDE webid-oidc." -#: src/scm/webid-oidc/program.scm:272 +#: src/scm/webid-oidc/program.scm:285 msgid "" "\n" "This program is covered by the GNU Affero GPL, version 3 or\n" @@ -1377,7 +1377,7 @@ msgstr "" "code source complet correspondant (avec vos modifications) sans\n" "frais. Le serveur ajoute un en-tête « Source: » à toutes les réponses." -#: src/scm/webid-oidc/program.scm:279 +#: src/scm/webid-oidc/program.scm:292 msgid "" "\n" "Available commands:" @@ -1385,7 +1385,7 @@ msgstr "" "\n" "Commandes disponibles :" -#: src/scm/webid-oidc/program.scm:281 +#: src/scm/webid-oidc/program.scm:294 #, scheme-format msgid "" "\n" @@ -1396,12 +1396,12 @@ msgstr "" " ~a :\n" " exécute le proxy inverse authentifiant." -#: src/scm/webid-oidc/program.scm:284 src/scm/webid-oidc/program.scm:456 -#: src/scm/webid-oidc/program.scm:625 +#: src/scm/webid-oidc/program.scm:297 src/scm/webid-oidc/program.scm:480 +#: src/scm/webid-oidc/program.scm:649 msgid "command-line|command|reverse-proxy" msgstr "proxy-inversé" -#: src/scm/webid-oidc/program.scm:285 +#: src/scm/webid-oidc/program.scm:298 #, scheme-format msgid "" "\n" @@ -1412,12 +1412,12 @@ msgstr "" " ~a :\n" " exécute un fournisseur d’identité." -#: src/scm/webid-oidc/program.scm:288 src/scm/webid-oidc/program.scm:481 -#: src/scm/webid-oidc/program.scm:647 +#: src/scm/webid-oidc/program.scm:301 src/scm/webid-oidc/program.scm:505 +#: src/scm/webid-oidc/program.scm:671 msgid "command-line|command|identity-provider" msgstr "fournisseur-identité" -#: src/scm/webid-oidc/program.scm:289 +#: src/scm/webid-oidc/program.scm:302 #, scheme-format msgid "" "\n" @@ -1428,12 +1428,12 @@ msgstr "" " ~a :\n" " sert les pages d’une application publique." -#: src/scm/webid-oidc/program.scm:292 src/scm/webid-oidc/program.scm:502 -#: src/scm/webid-oidc/program.scm:691 +#: src/scm/webid-oidc/program.scm:305 src/scm/webid-oidc/program.scm:526 +#: src/scm/webid-oidc/program.scm:715 msgid "command-line|command|client-service" msgstr "service-client" -#: src/scm/webid-oidc/program.scm:293 +#: src/scm/webid-oidc/program.scm:306 #, scheme-format msgid "" "\n" @@ -1446,12 +1446,12 @@ msgstr "" " exécute un serveur complet, avec un fournisseur d’identité et\n" " une fonction de stockage de ressources." -#: src/scm/webid-oidc/program.scm:297 src/scm/webid-oidc/program.scm:528 -#: src/scm/webid-oidc/program.scm:720 +#: src/scm/webid-oidc/program.scm:310 src/scm/webid-oidc/program.scm:552 +#: src/scm/webid-oidc/program.scm:744 msgid "command-line|command|server" msgstr "serveur" -#: src/scm/webid-oidc/program.scm:299 +#: src/scm/webid-oidc/program.scm:312 msgid "" "\n" "General options:" @@ -1459,7 +1459,7 @@ msgstr "" "\n" "Options générales :" -#: src/scm/webid-oidc/program.scm:301 +#: src/scm/webid-oidc/program.scm:314 #, scheme-format msgid "" "\n" @@ -1473,7 +1473,7 @@ msgstr "" " correspondant. Par exemple, MOYEN serait une URI pointant vers\n" " l’archive de code." -#: src/scm/webid-oidc/program.scm:306 +#: src/scm/webid-oidc/program.scm:319 #, scheme-format msgid "" "\n" @@ -1484,7 +1484,7 @@ msgstr "" " -h, --~a :\n" " affiche un court message d’aide et quitte." -#: src/scm/webid-oidc/program.scm:310 +#: src/scm/webid-oidc/program.scm:323 #, scheme-format msgid "" "\n" @@ -1495,7 +1495,7 @@ msgstr "" " -v, --~a :\n" " affiche le numéro de version (~a) et quitte." -#: src/scm/webid-oidc/program.scm:315 +#: src/scm/webid-oidc/program.scm:328 #, scheme-format msgid "" "\n" @@ -1506,7 +1506,7 @@ msgstr "" " -l FICHIER.journal, --~a=FICHIER.journal :\n" " redirige la sortie standard du programme vers FICHIER.journal." -#: src/scm/webid-oidc/program.scm:319 +#: src/scm/webid-oidc/program.scm:332 #, scheme-format msgid "" "\n" @@ -1517,7 +1517,7 @@ msgstr "" " -e FICHIER.erreurs, --~a=FICHIER.erreurs :\n" " redirige les erreurs du programme vers FICHIER.erreurs." -#: src/scm/webid-oidc/program.scm:324 +#: src/scm/webid-oidc/program.scm:337 msgid "" "\n" "General server-side options:" @@ -1525,7 +1525,7 @@ msgstr "" "\n" "Options générales pour un serveur :" -#: src/scm/webid-oidc/program.scm:326 +#: src/scm/webid-oidc/program.scm:339 #, scheme-format msgid "" "\n" @@ -1536,7 +1536,7 @@ msgstr "" " -p PORT, --~a=PORT :\n" " définit le port à lier, 8080 par défaut." -#: src/scm/webid-oidc/program.scm:330 +#: src/scm/webid-oidc/program.scm:343 #, scheme-format msgid "" "\n" @@ -1548,7 +1548,7 @@ msgstr "" " définit l’URI publique du serveur (schéma, identifiant de\n" " l’utilisateur, hôte et port)." -#: src/scm/webid-oidc/program.scm:335 +#: src/scm/webid-oidc/program.scm:348 msgid "" "\n" "Options for the resource server:" @@ -1556,7 +1556,7 @@ msgstr "" "\n" "Options pour le serveur de ressources :" -#: src/scm/webid-oidc/program.scm:337 +#: src/scm/webid-oidc/program.scm:350 #, scheme-format msgid "" "\n" @@ -1571,7 +1571,7 @@ msgstr "" " authentifié, XXX-Agent par défaut. Pour un serveur complet, ceci\n" " désactive l’authentification par webid-oidc." -#: src/scm/webid-oidc/program.scm:343 +#: src/scm/webid-oidc/program.scm:356 #, scheme-format msgid "" "\n" @@ -1584,7 +1584,7 @@ msgstr "" " définit l’URI sortante du proxy inversé, seulement pour la\n" " commande proxy-inversé." -#: src/scm/webid-oidc/program.scm:349 +#: src/scm/webid-oidc/program.scm:362 msgid "" "\n" "Options for the identity provider:" @@ -1592,7 +1592,7 @@ msgstr "" "\n" "Options du fournisseur d’identité :" -#: src/scm/webid-oidc/program.scm:351 +#: src/scm/webid-oidc/program.scm:364 #, scheme-format msgid "" "\n" @@ -1606,7 +1606,7 @@ msgstr "" " nouvelle clé sera générée. Le serveur n’offre pas de service\n" " HTTPS." -#: src/scm/webid-oidc/program.scm:356 +#: src/scm/webid-oidc/program.scm:369 #, scheme-format msgid "" "\n" @@ -1617,7 +1617,7 @@ msgstr "" " -s WEBID, --~a=WEBID :\n" " définit l'identité du sujet." -#: src/scm/webid-oidc/program.scm:360 +#: src/scm/webid-oidc/program.scm:373 #, scheme-format msgid "" "\n" @@ -1628,7 +1628,7 @@ msgstr "" " -w MOT_DE_PASSE_CHIFFRÉ, --~a=MOT_DE_PASSE_CHIFFRÉ :\n" " définit le mot de passe chiffré pour reconnaître l’utilisateur." -#: src/scm/webid-oidc/program.scm:364 +#: src/scm/webid-oidc/program.scm:377 #, scheme-format msgid "" "\n" @@ -1639,7 +1639,7 @@ msgstr "" " -j URI, --~a=URI :\n" " définit l’URI pour requêter les clés du serveur." -#: src/scm/webid-oidc/program.scm:368 +#: src/scm/webid-oidc/program.scm:381 #, scheme-format msgid "" "\n" @@ -1651,7 +1651,7 @@ msgstr "" " définit l'URI du terminal d'autorisation de l’émetteur\n" " d’identité." -#: src/scm/webid-oidc/program.scm:372 +#: src/scm/webid-oidc/program.scm:385 #, scheme-format msgid "" "\n" @@ -1662,7 +1662,7 @@ msgstr "" " -t URI, --~a=URI :\n" " définit le terminal de jeton de l’émetteur d’identité." -#: src/scm/webid-oidc/program.scm:377 +#: src/scm/webid-oidc/program.scm:390 msgid "" "\n" "Options for the client service:" @@ -1670,7 +1670,7 @@ msgstr "" "\n" "Options pour le service associé à un client :" -#: src/scm/webid-oidc/program.scm:379 +#: src/scm/webid-oidc/program.scm:392 #, scheme-format msgid "" "\n" @@ -1683,7 +1683,7 @@ msgstr "" " définit l’identifiant web de l’application client, qui est\n" " déréférencé pour une ressource sémantique." -#: src/scm/webid-oidc/program.scm:384 +#: src/scm/webid-oidc/program.scm:397 #, scheme-format msgid "" "\n" @@ -1697,7 +1697,7 @@ msgstr "" " d’autorisation. La page de redirection affiche le code à coller\n" " dans l’application." -#: src/scm/webid-oidc/program.scm:389 +#: src/scm/webid-oidc/program.scm:402 #, scheme-format msgid "" "\n" @@ -1709,7 +1709,7 @@ msgstr "" " définit le nom de l’application visible par l’utilisateur (peut\n" " être trompeur…)." -#: src/scm/webid-oidc/program.scm:393 +#: src/scm/webid-oidc/program.scm:406 #, scheme-format msgid "" "\n" @@ -1722,7 +1722,7 @@ msgstr "" " définit l’URI présentant plus d’informations à propos de\n" " l’application (peut aussi être trompeur)." -#: src/scm/webid-oidc/program.scm:399 +#: src/scm/webid-oidc/program.scm:412 msgid "" "\n" "Environment variables:" @@ -1730,18 +1730,28 @@ msgstr "" "\n" "Variables d’environnement :" -#: src/scm/webid-oidc/program.scm:401 +#: src/scm/webid-oidc/program.scm:414 msgid "" "\n" -" LANG: set the locale of the user interface (for the server commands,\n" -" the user is the system administrator)." +" XML_CATALOG_FILES: the server will fetch resources on the web. By\n" +" setting this environment variable to a space-separated list of\n" +" catalog URIs, the server will redirect these requests to another\n" +" server. Currently, it is not possible to load files from the\n" +" file system, because there is no way to specify the\n" +" content-type." msgstr "" "\n" -" LANG : définit la locale de l’interface utilisateur (pour les\n" -" commandes serveur, l’utilisateur est l’administrateur système)." +" XML_CATALOG_FILES : le serveur devra télécharger des ressources sur\n" +" le web. En définissant la valeur de cette variable\n" +" d’environnement par une liste d’URIs de catalogues séparés par\n" +" des espaces, le serveur redirigera ces requêtes vers un autre\n" +" serveur. Actuellement il n’est pas possible de charger des\n" +" fichiers depuis le système de fichiers, parce qu’il n’y a pas de\n" +" moyen de spécifier le type de contenu." -#: src/scm/webid-oidc/program.scm:405 src/scm/webid-oidc/program.scm:414 -#: src/scm/webid-oidc/program.scm:422 src/scm/webid-oidc/program.scm:430 +#: src/scm/webid-oidc/program.scm:422 src/scm/webid-oidc/program.scm:429 +#: src/scm/webid-oidc/program.scm:438 src/scm/webid-oidc/program.scm:446 +#: src/scm/webid-oidc/program.scm:454 #, scheme-format msgid "" "the-environment-variable|\n" @@ -1750,7 +1760,17 @@ msgstr "" " \n" " Elle vaut actuellement ~s." -#: src/scm/webid-oidc/program.scm:408 +#: src/scm/webid-oidc/program.scm:425 +msgid "" +"\n" +" LANG: set the locale of the user interface (for the server commands,\n" +" the user is the system administrator)." +msgstr "" +"\n" +" LANG : définit la locale de l’interface utilisateur (pour les\n" +" commandes serveur, l’utilisateur est l’administrateur système)." + +#: src/scm/webid-oidc/program.scm:432 msgid "" "\n" " XDG_DATA_HOME: where the program stores persistent data. The\n" @@ -1765,7 +1785,7 @@ msgstr "" " ici. Pour un service système, il est recommandé d’utiliser\n" " /var/lib." -#: src/scm/webid-oidc/program.scm:417 +#: src/scm/webid-oidc/program.scm:441 msgid "" "\n" " XDG_CACHE_HOME: where the program stores and updates the seed file,\n" @@ -1778,7 +1798,7 @@ msgstr "" " supprimer ce dossier n’importe quand. Le fichier de graine sera\n" " initialisé à partir de /dev/random." -#: src/scm/webid-oidc/program.scm:425 +#: src/scm/webid-oidc/program.scm:449 msgid "" "\n" " HOME: if XDG_DATA_HOME or XDG_CACHE_HOME is not set, they are\n" @@ -1790,7 +1810,7 @@ msgstr "" " valeur est calculée à partir de la variable d’environnement\n" " HOME. Elle n’est pas utilisée autrement." -#: src/scm/webid-oidc/program.scm:434 +#: src/scm/webid-oidc/program.scm:458 msgid "" "\n" "Running a reverse proxy" @@ -1798,7 +1818,7 @@ msgstr "" "\n" "Exécution d’un proxy inversé" -#: src/scm/webid-oidc/program.scm:436 +#: src/scm/webid-oidc/program.scm:460 msgid "" "\n" "Suppose that you operate data.provider.com. You want to run an\n" @@ -1820,7 +1840,7 @@ msgstr "" "authentifié. https://private.data.provider.com ne doit accepter que\n" "les requêtes depuis ce proxy inversé." -#: src/scm/webid-oidc/program.scm:446 +#: src/scm/webid-oidc/program.scm:470 #, scheme-format msgid "" "\n" @@ -1844,7 +1864,7 @@ msgstr "" " --~a '/var/log/proxy.log' \\\n" " --~a '/var/log/proxy.err'" -#: src/scm/webid-oidc/program.scm:461 +#: src/scm/webid-oidc/program.scm:485 msgid "" "\n" "Running an identity provider" @@ -1852,7 +1872,7 @@ msgstr "" "\n" "Exécution d’un fournisseur d’identité" -#: src/scm/webid-oidc/program.scm:463 +#: src/scm/webid-oidc/program.scm:487 msgid "" "\n" "The identity provider running at webid-oidc-demo.planete-kraus.eu is\n" @@ -1863,7 +1883,7 @@ msgstr "" "webid-oidc-demo.planete-kraus.eu est invoqué avec les options\n" "suivantes :" -#: src/scm/webid-oidc/program.scm:467 +#: src/scm/webid-oidc/program.scm:491 #, scheme-format msgid "" "\n" @@ -1897,7 +1917,7 @@ msgstr "" " --~a 'https://webid-oidc-demo.planete-kraus.eu/token' \\\n" " --~a $PORT" -#: src/scm/webid-oidc/program.scm:487 +#: src/scm/webid-oidc/program.scm:511 msgid "" "\n" "Running the public pages for an application" @@ -1905,7 +1925,7 @@ msgstr "" "\n" "Service des pages publiques pour une application" -#: src/scm/webid-oidc/program.scm:489 +#: src/scm/webid-oidc/program.scm:513 msgid "" "\n" "The example client application pages for\n" @@ -1915,7 +1935,7 @@ msgstr "" "Les pages de l’application client d’exemple pour\n" "webid-oidc-demo.planete-kraus.eu sont servies de cette façon :" -#: src/scm/webid-oidc/program.scm:493 +#: src/scm/webid-oidc/program.scm:517 #, scheme-format msgid "" "\n" @@ -1943,7 +1963,7 @@ msgstr "" "html#Running-a-client' \\\n" " --~a $PORT" -#: src/scm/webid-oidc/program.scm:507 +#: src/scm/webid-oidc/program.scm:531 msgid "" "\n" "Running a full server" @@ -1951,7 +1971,7 @@ msgstr "" "\n" "Exécution d’un serveur complet" -#: src/scm/webid-oidc/program.scm:510 +#: src/scm/webid-oidc/program.scm:534 msgid "" "\n" "To run the server with identity provider and\n" @@ -1963,7 +1983,7 @@ msgstr "" "un serveur de ressources pour un utilisateur particulier, vous devez\n" "combiner les options des parties." -#: src/scm/webid-oidc/program.scm:514 +#: src/scm/webid-oidc/program.scm:538 #, scheme-format msgid "" "\n" @@ -1997,7 +2017,7 @@ msgstr "" " --~a 'https://data.planete-kraus.eu/token' \\\n" " --~a '...port...'" -#: src/scm/webid-oidc/program.scm:539 +#: src/scm/webid-oidc/program.scm:563 #, scheme-format msgid "" "\n" @@ -2006,27 +2026,27 @@ msgstr "" "\n" "Si vous trouvez une erreur, veuillez en envoyer un rapport à ~a." -#: src/scm/webid-oidc/program.scm:559 +#: src/scm/webid-oidc/program.scm:583 #, scheme-format msgid "The --~a argument must be a number, not ~s.\n" msgstr "L’argument de --~a doit être un nombre, pas ~s.\n" -#: src/scm/webid-oidc/program.scm:565 +#: src/scm/webid-oidc/program.scm:589 #, scheme-format msgid "The --~a argument must be an integer, not ~s.\n" msgstr "L’argument de --~a doit être un entier, pas ~s.\n" -#: src/scm/webid-oidc/program.scm:571 +#: src/scm/webid-oidc/program.scm:595 #, scheme-format msgid "The --~a argument must be positive, ~s is invalid.\n" msgstr "L’argument de --~a doit être positif, ~s est invalide.\n" -#: src/scm/webid-oidc/program.scm:576 +#: src/scm/webid-oidc/program.scm:600 #, scheme-format msgid "The --~a argument must be less than 65536, ~s is invalid.\n" msgstr "L’argument de --~a doit être inférieur à 65536, ~s est invalide.\n" -#: src/scm/webid-oidc/program.scm:618 +#: src/scm/webid-oidc/program.scm:642 #, scheme-format msgid "" "Usage: ~a COMMAND [OPTIONS]...\n" @@ -2035,18 +2055,18 @@ msgstr "" "Utilisation : ~a COMMANDE [OPTIONS]...\n" "Voir --~a (-h).\n" -#: src/scm/webid-oidc/program.scm:628 src/scm/webid-oidc/program.scm:650 -#: src/scm/webid-oidc/program.scm:722 +#: src/scm/webid-oidc/program.scm:652 src/scm/webid-oidc/program.scm:674 +#: src/scm/webid-oidc/program.scm:746 #, scheme-format msgid "You must pass --~a to set the server name.\n" msgstr "Vous devez passer --~a pour définir le nom du serveur.\n" -#: src/scm/webid-oidc/program.scm:632 +#: src/scm/webid-oidc/program.scm:656 #, scheme-format msgid "You must pass --~a to set the backend URI.\n" msgstr "Vous devez passer --~a pour définir l'URI du service d’arrière-plan.\n" -#: src/scm/webid-oidc/program.scm:654 src/scm/webid-oidc/program.scm:726 +#: src/scm/webid-oidc/program.scm:678 src/scm/webid-oidc/program.scm:750 #, scheme-format msgid "" "You must pass --~a to set the file where to store the identity provider " @@ -2055,59 +2075,59 @@ msgstr "" "Vous devez passer --~a pour définir le nom du fichier pour sauvegarder\n" "la clé du fournisseur d’identité.\n" -#: src/scm/webid-oidc/program.scm:658 src/scm/webid-oidc/program.scm:730 +#: src/scm/webid-oidc/program.scm:682 src/scm/webid-oidc/program.scm:754 #, scheme-format msgid "You must pass --~a to set the subject of the identity provider.\n" msgstr "" "Vous devez passer --~a pour définir le sujet du fournisseur d’identité.\n" -#: src/scm/webid-oidc/program.scm:662 src/scm/webid-oidc/program.scm:734 +#: src/scm/webid-oidc/program.scm:686 src/scm/webid-oidc/program.scm:758 #, scheme-format msgid "You must pass --~a to set the subject’s encrypted password.\n" msgstr "" "Vous devez passer --~a pour définir le mot de passe chiffré du sujet.\n" -#: src/scm/webid-oidc/program.scm:666 src/scm/webid-oidc/program.scm:738 +#: src/scm/webid-oidc/program.scm:690 src/scm/webid-oidc/program.scm:762 #, scheme-format msgid "You must pass --~a to set the JWKS URI.\n" msgstr "Vous devez passer --~a pour définir l'URI du JWKS.\n" -#: src/scm/webid-oidc/program.scm:670 src/scm/webid-oidc/program.scm:742 +#: src/scm/webid-oidc/program.scm:694 src/scm/webid-oidc/program.scm:766 #, scheme-format msgid "You must pass --~a to set the authorization endpoint URI.\n" msgstr "" "Vous devez passer --~a pour définir l'URI du terminal d'autorisation.\n" -#: src/scm/webid-oidc/program.scm:674 src/scm/webid-oidc/program.scm:746 +#: src/scm/webid-oidc/program.scm:698 src/scm/webid-oidc/program.scm:770 #, scheme-format msgid "You must pass --~a to set the token endpoint URI.\n" msgstr "Vous devez passer --~a pour définir l'URI du terminal de jeton.\n" -#: src/scm/webid-oidc/program.scm:694 +#: src/scm/webid-oidc/program.scm:718 #, scheme-format msgid "You must pass --~a to set the application web ID.\n" msgstr "" "Vous devez passer --~a pour définir l'identifiant web de l’application.\n" -#: src/scm/webid-oidc/program.scm:698 +#: src/scm/webid-oidc/program.scm:722 #, scheme-format msgid "You must pass --~a to set the redirection URI.\n" msgstr "Vous devez passer --~a pour définir l'URI de redirection.\n" -#: src/scm/webid-oidc/program.scm:702 +#: src/scm/webid-oidc/program.scm:726 #, scheme-format msgid "You must pass --~a to set the informative client name.\n" msgstr "" "Vous devez passer --~a pour donner un nom pour l’application à titre " "informatif.\n" -#: src/scm/webid-oidc/program.scm:706 +#: src/scm/webid-oidc/program.scm:730 #, scheme-format msgid "You must pass --~a to set the informative client URI.\n" msgstr "" "Vous devez passer --~a pour définir l'URI du client, à titre informatif.\n" -#: src/scm/webid-oidc/program.scm:793 +#: src/scm/webid-oidc/program.scm:817 #, scheme-format msgid "Unknown command ~s\n" msgstr "Commande inconnue ~s\n" diff --git a/po/webid-oidc.pot b/po/webid-oidc.pot index 2507196..94c0247 100644 --- a/po/webid-oidc.pot +++ b/po/webid-oidc.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: webid-oidc SNAPSHOT\n" "Report-Msgid-Bugs-To: vivien@planete-kraus.eu\n" -"POT-Creation-Date: 2021-07-27 16:04+0200\n" +"POT-Creation-Date: 2021-07-28 16:56+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -969,15 +969,15 @@ msgid "Warning: ~a\n" msgstr "" #: src/scm/webid-oidc/hello-world.scm:48 src/scm/webid-oidc/example-app.scm:116 -#: src/scm/webid-oidc/program.scm:204 +#: src/scm/webid-oidc/program.scm:217 msgid "command-line|version" msgstr "" -#: src/scm/webid-oidc/hello-world.scm:50 src/scm/webid-oidc/program.scm:206 +#: src/scm/webid-oidc/hello-world.scm:50 src/scm/webid-oidc/program.scm:219 msgid "command-line|complete-corresponding-source" msgstr "" -#: src/scm/webid-oidc/hello-world.scm:52 src/scm/webid-oidc/program.scm:208 +#: src/scm/webid-oidc/hello-world.scm:52 src/scm/webid-oidc/program.scm:221 msgid "command-line|help" msgstr "" @@ -985,11 +985,11 @@ msgstr "" msgid "command-line|port" msgstr "" -#: src/scm/webid-oidc/hello-world.scm:56 src/scm/webid-oidc/program.scm:238 +#: src/scm/webid-oidc/hello-world.scm:56 src/scm/webid-oidc/program.scm:251 msgid "command-line|log-file" msgstr "" -#: src/scm/webid-oidc/hello-world.scm:58 src/scm/webid-oidc/program.scm:240 +#: src/scm/webid-oidc/hello-world.scm:58 src/scm/webid-oidc/program.scm:253 msgid "command-line|error-file" msgstr "" @@ -1023,12 +1023,12 @@ msgid "" msgstr "" #: src/scm/webid-oidc/hello-world.scm:103 -#: src/scm/webid-oidc/example-app.scm:159 src/scm/webid-oidc/program.scm:544 +#: src/scm/webid-oidc/example-app.scm:159 src/scm/webid-oidc/program.scm:568 #, scheme-format msgid "~a version ~a\n" msgstr "" -#: src/scm/webid-oidc/hello-world.scm:112 src/scm/webid-oidc/program.scm:552 +#: src/scm/webid-oidc/hello-world.scm:112 src/scm/webid-oidc/program.scm:576 msgid "" "You are legally required to link to the complete corresponding source code.\n" msgstr "" @@ -1147,106 +1147,106 @@ msgstr "" msgid "There was an error: ~a\n" msgstr "" -#: src/scm/webid-oidc/program.scm:98 +#: src/scm/webid-oidc/program.scm:111 #, scheme-format msgid "~a: ~a: Internal server error: ~a\n" msgstr "" -#: src/scm/webid-oidc/program.scm:112 +#: src/scm/webid-oidc/program.scm:125 #, scheme-format msgid "" "The client locale ~s can’t be approximated by system locale ~s (because ~a), " "using C.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:136 +#: src/scm/webid-oidc/program.scm:149 #, scheme-format msgid "~a: ~s ~a ~s ~a\n" msgstr "" -#: src/scm/webid-oidc/program.scm:138 +#: src/scm/webid-oidc/program.scm:151 #, scheme-format msgid "~a: ~a (~a)" msgstr "" -#: src/scm/webid-oidc/program.scm:142 +#: src/scm/webid-oidc/program.scm:155 #, scheme-format msgid "~a: ~a" msgstr "" -#: src/scm/webid-oidc/program.scm:152 +#: src/scm/webid-oidc/program.scm:165 #, scheme-format msgid "(there was an error: ~a)" msgstr "" -#: src/scm/webid-oidc/program.scm:210 +#: src/scm/webid-oidc/program.scm:223 msgid "command-line|server|port" msgstr "" -#: src/scm/webid-oidc/program.scm:212 +#: src/scm/webid-oidc/program.scm:225 msgid "command-line|server|server-name" msgstr "" -#: src/scm/webid-oidc/program.scm:214 +#: src/scm/webid-oidc/program.scm:227 msgid "command-line|server|reverse-proxy|backend-uri" msgstr "" -#: src/scm/webid-oidc/program.scm:216 +#: src/scm/webid-oidc/program.scm:229 msgid "command-line|server|reverse-proxy|header" msgstr "" -#: src/scm/webid-oidc/program.scm:218 +#: src/scm/webid-oidc/program.scm:231 msgid "command-line|server|issuer|key-file" msgstr "" -#: src/scm/webid-oidc/program.scm:220 +#: src/scm/webid-oidc/program.scm:233 msgid "command-line|server|issuer|subject" msgstr "" -#: src/scm/webid-oidc/program.scm:222 +#: src/scm/webid-oidc/program.scm:235 msgid "command-line|server|issuer|encrypted-password" msgstr "" -#: src/scm/webid-oidc/program.scm:224 +#: src/scm/webid-oidc/program.scm:237 msgid "command-line|server|issuer|jwks-uri" msgstr "" -#: src/scm/webid-oidc/program.scm:226 +#: src/scm/webid-oidc/program.scm:239 msgid "command-line|server|issuer|authorization-endpoint-uri" msgstr "" -#: src/scm/webid-oidc/program.scm:228 +#: src/scm/webid-oidc/program.scm:241 msgid "command-line|server|issuer|token-endpoint-uri" msgstr "" -#: src/scm/webid-oidc/program.scm:230 +#: src/scm/webid-oidc/program.scm:243 msgid "command-line|server|client-id" msgstr "" -#: src/scm/webid-oidc/program.scm:232 +#: src/scm/webid-oidc/program.scm:245 msgid "command-line|server|redirect-uri" msgstr "" -#: src/scm/webid-oidc/program.scm:234 +#: src/scm/webid-oidc/program.scm:247 msgid "command-line|server|client-name" msgstr "" -#: src/scm/webid-oidc/program.scm:236 +#: src/scm/webid-oidc/program.scm:249 msgid "command-line|server|client-uri" msgstr "" -#: src/scm/webid-oidc/program.scm:265 +#: src/scm/webid-oidc/program.scm:278 #, scheme-format msgid "Usage: ~a COMMAND [OPTIONS]...\n" msgstr "" -#: src/scm/webid-oidc/program.scm:269 +#: src/scm/webid-oidc/program.scm:282 msgid "" "\n" "Run the webid-oidc COMMAND." msgstr "" -#: src/scm/webid-oidc/program.scm:272 +#: src/scm/webid-oidc/program.scm:285 msgid "" "\n" "This program is covered by the GNU Affero GPL, version 3 or\n" @@ -1256,13 +1256,13 @@ msgid "" "to all responses." msgstr "" -#: src/scm/webid-oidc/program.scm:279 +#: src/scm/webid-oidc/program.scm:292 msgid "" "\n" "Available commands:" msgstr "" -#: src/scm/webid-oidc/program.scm:281 +#: src/scm/webid-oidc/program.scm:294 #, scheme-format msgid "" "\n" @@ -1270,12 +1270,12 @@ msgid "" " run an authenticating reverse proxy." msgstr "" -#: src/scm/webid-oidc/program.scm:284 src/scm/webid-oidc/program.scm:456 -#: src/scm/webid-oidc/program.scm:625 +#: src/scm/webid-oidc/program.scm:297 src/scm/webid-oidc/program.scm:480 +#: src/scm/webid-oidc/program.scm:649 msgid "command-line|command|reverse-proxy" msgstr "" -#: src/scm/webid-oidc/program.scm:285 +#: src/scm/webid-oidc/program.scm:298 #, scheme-format msgid "" "\n" @@ -1283,12 +1283,12 @@ msgid "" " run an identity provider." msgstr "" -#: src/scm/webid-oidc/program.scm:288 src/scm/webid-oidc/program.scm:481 -#: src/scm/webid-oidc/program.scm:647 +#: src/scm/webid-oidc/program.scm:301 src/scm/webid-oidc/program.scm:505 +#: src/scm/webid-oidc/program.scm:671 msgid "command-line|command|identity-provider" msgstr "" -#: src/scm/webid-oidc/program.scm:289 +#: src/scm/webid-oidc/program.scm:302 #, scheme-format msgid "" "\n" @@ -1296,12 +1296,12 @@ msgid "" " serve the pages for a public application." msgstr "" -#: src/scm/webid-oidc/program.scm:292 src/scm/webid-oidc/program.scm:502 -#: src/scm/webid-oidc/program.scm:691 +#: src/scm/webid-oidc/program.scm:305 src/scm/webid-oidc/program.scm:526 +#: src/scm/webid-oidc/program.scm:715 msgid "command-line|command|client-service" msgstr "" -#: src/scm/webid-oidc/program.scm:293 +#: src/scm/webid-oidc/program.scm:306 #, scheme-format msgid "" "\n" @@ -1310,18 +1310,18 @@ msgid "" " facility." msgstr "" -#: src/scm/webid-oidc/program.scm:297 src/scm/webid-oidc/program.scm:528 -#: src/scm/webid-oidc/program.scm:720 +#: src/scm/webid-oidc/program.scm:310 src/scm/webid-oidc/program.scm:552 +#: src/scm/webid-oidc/program.scm:744 msgid "command-line|command|server" msgstr "" -#: src/scm/webid-oidc/program.scm:299 +#: src/scm/webid-oidc/program.scm:312 msgid "" "\n" "General options:" msgstr "" -#: src/scm/webid-oidc/program.scm:301 +#: src/scm/webid-oidc/program.scm:314 #, scheme-format msgid "" "\n" @@ -1330,7 +1330,7 @@ msgid "" " code. For instance, this would be an URI pointing to a tarball." msgstr "" -#: src/scm/webid-oidc/program.scm:306 +#: src/scm/webid-oidc/program.scm:319 #, scheme-format msgid "" "\n" @@ -1338,7 +1338,7 @@ msgid "" " display a short help message and exit." msgstr "" -#: src/scm/webid-oidc/program.scm:310 +#: src/scm/webid-oidc/program.scm:323 #, scheme-format msgid "" "\n" @@ -1346,7 +1346,7 @@ msgid "" " display the version information (~a) and exit." msgstr "" -#: src/scm/webid-oidc/program.scm:315 +#: src/scm/webid-oidc/program.scm:328 #, scheme-format msgid "" "\n" @@ -1354,7 +1354,7 @@ msgid "" " redirect the program standard output to FILE.log." msgstr "" -#: src/scm/webid-oidc/program.scm:319 +#: src/scm/webid-oidc/program.scm:332 #, scheme-format msgid "" "\n" @@ -1362,13 +1362,13 @@ msgid "" " redirect the program errors to FILE.err." msgstr "" -#: src/scm/webid-oidc/program.scm:324 +#: src/scm/webid-oidc/program.scm:337 msgid "" "\n" "General server-side options:" msgstr "" -#: src/scm/webid-oidc/program.scm:326 +#: src/scm/webid-oidc/program.scm:339 #, scheme-format msgid "" "\n" @@ -1376,7 +1376,7 @@ msgid "" " set the server port to bind, 8080 by default." msgstr "" -#: src/scm/webid-oidc/program.scm:330 +#: src/scm/webid-oidc/program.scm:343 #, scheme-format msgid "" "\n" @@ -1384,13 +1384,13 @@ msgid "" " set the public server URI (scheme, userinfo, host, and port)." msgstr "" -#: src/scm/webid-oidc/program.scm:335 +#: src/scm/webid-oidc/program.scm:348 msgid "" "\n" "Options for the resource server:" msgstr "" -#: src/scm/webid-oidc/program.scm:337 +#: src/scm/webid-oidc/program.scm:350 #, scheme-format msgid "" "\n" @@ -1400,7 +1400,7 @@ msgid "" " authentication." msgstr "" -#: src/scm/webid-oidc/program.scm:343 +#: src/scm/webid-oidc/program.scm:356 #, scheme-format msgid "" "\n" @@ -1409,13 +1409,13 @@ msgid "" " reverse-proxy command." msgstr "" -#: src/scm/webid-oidc/program.scm:349 +#: src/scm/webid-oidc/program.scm:362 msgid "" "\n" "Options for the identity provider:" msgstr "" -#: src/scm/webid-oidc/program.scm:351 +#: src/scm/webid-oidc/program.scm:364 #, scheme-format msgid "" "\n" @@ -1424,7 +1424,7 @@ msgid "" " key is generated. The server does not offer an HTTPS service." msgstr "" -#: src/scm/webid-oidc/program.scm:356 +#: src/scm/webid-oidc/program.scm:369 #, scheme-format msgid "" "\n" @@ -1432,7 +1432,7 @@ msgid "" " set the identity of the subject." msgstr "" -#: src/scm/webid-oidc/program.scm:360 +#: src/scm/webid-oidc/program.scm:373 #, scheme-format msgid "" "\n" @@ -1440,7 +1440,7 @@ msgid "" " set the encrypted password to recognize the user." msgstr "" -#: src/scm/webid-oidc/program.scm:364 +#: src/scm/webid-oidc/program.scm:377 #, scheme-format msgid "" "\n" @@ -1448,7 +1448,7 @@ msgid "" " set the URI to query the key of the server." msgstr "" -#: src/scm/webid-oidc/program.scm:368 +#: src/scm/webid-oidc/program.scm:381 #, scheme-format msgid "" "\n" @@ -1456,7 +1456,7 @@ msgid "" " set the authorization endpoint of the issuer." msgstr "" -#: src/scm/webid-oidc/program.scm:372 +#: src/scm/webid-oidc/program.scm:385 #, scheme-format msgid "" "\n" @@ -1464,13 +1464,13 @@ msgid "" " set the token endpoint of the issuer." msgstr "" -#: src/scm/webid-oidc/program.scm:377 +#: src/scm/webid-oidc/program.scm:390 msgid "" "\n" "Options for the client service:" msgstr "" -#: src/scm/webid-oidc/program.scm:379 +#: src/scm/webid-oidc/program.scm:392 #, scheme-format msgid "" "\n" @@ -1479,7 +1479,7 @@ msgid "" " dereferenced to a semantic resource." msgstr "" -#: src/scm/webid-oidc/program.scm:384 +#: src/scm/webid-oidc/program.scm:397 #, scheme-format msgid "" "\n" @@ -1488,7 +1488,7 @@ msgid "" " page is presented with the code to paste in the application." msgstr "" -#: src/scm/webid-oidc/program.scm:389 +#: src/scm/webid-oidc/program.scm:402 #, scheme-format msgid "" "\n" @@ -1496,7 +1496,7 @@ msgid "" " set the user-visible application name (may be misleading...)." msgstr "" -#: src/scm/webid-oidc/program.scm:393 +#: src/scm/webid-oidc/program.scm:406 #, scheme-format msgid "" "\n" @@ -1505,28 +1505,40 @@ msgid "" " application (again, may be misleading)." msgstr "" -#: src/scm/webid-oidc/program.scm:399 +#: src/scm/webid-oidc/program.scm:412 msgid "" "\n" "Environment variables:" msgstr "" -#: src/scm/webid-oidc/program.scm:401 +#: src/scm/webid-oidc/program.scm:414 msgid "" "\n" -" LANG: set the locale of the user interface (for the server commands,\n" -" the user is the system administrator)." +" XML_CATALOG_FILES: the server will fetch resources on the web. By\n" +" setting this environment variable to a space-separated list of\n" +" catalog URIs, the server will redirect these requests to another\n" +" server. Currently, it is not possible to load files from the\n" +" file system, because there is no way to specify the\n" +" content-type." msgstr "" -#: src/scm/webid-oidc/program.scm:405 src/scm/webid-oidc/program.scm:414 -#: src/scm/webid-oidc/program.scm:422 src/scm/webid-oidc/program.scm:430 +#: src/scm/webid-oidc/program.scm:422 src/scm/webid-oidc/program.scm:429 +#: src/scm/webid-oidc/program.scm:438 src/scm/webid-oidc/program.scm:446 +#: src/scm/webid-oidc/program.scm:454 #, scheme-format msgid "" "the-environment-variable|\n" " It is currently set to ~s." msgstr "" -#: src/scm/webid-oidc/program.scm:408 +#: src/scm/webid-oidc/program.scm:425 +msgid "" +"\n" +" LANG: set the locale of the user interface (for the server commands,\n" +" the user is the system administrator)." +msgstr "" + +#: src/scm/webid-oidc/program.scm:432 msgid "" "\n" " XDG_DATA_HOME: where the program stores persistent data. The\n" @@ -1535,7 +1547,7 @@ msgid "" " recommended to set it to /var/lib." msgstr "" -#: src/scm/webid-oidc/program.scm:417 +#: src/scm/webid-oidc/program.scm:441 msgid "" "\n" " XDG_CACHE_HOME: where the program stores and updates the seed file,\n" @@ -1543,7 +1555,7 @@ msgid "" " time. The seed file will be initialized from /dev/random." msgstr "" -#: src/scm/webid-oidc/program.scm:425 +#: src/scm/webid-oidc/program.scm:449 msgid "" "\n" " HOME: if XDG_DATA_HOME or XDG_CACHE_HOME is not set, they are\n" @@ -1551,13 +1563,13 @@ msgid "" " not used otherwise." msgstr "" -#: src/scm/webid-oidc/program.scm:434 +#: src/scm/webid-oidc/program.scm:458 msgid "" "\n" "Running a reverse proxy" msgstr "" -#: src/scm/webid-oidc/program.scm:436 +#: src/scm/webid-oidc/program.scm:460 msgid "" "\n" "Suppose that you operate data.provider.com. You want to run an\n" @@ -1570,7 +1582,7 @@ msgid "" "from this reverse proxy." msgstr "" -#: src/scm/webid-oidc/program.scm:446 +#: src/scm/webid-oidc/program.scm:470 #, scheme-format msgid "" "\n" @@ -1584,20 +1596,20 @@ msgid "" " --~a '/var/log/proxy.err'" msgstr "" -#: src/scm/webid-oidc/program.scm:461 +#: src/scm/webid-oidc/program.scm:485 msgid "" "\n" "Running an identity provider" msgstr "" -#: src/scm/webid-oidc/program.scm:463 +#: src/scm/webid-oidc/program.scm:487 msgid "" "\n" "The identity provider running at webid-oidc-demo.planete-kraus.eu is\n" "invoked with the following options:" msgstr "" -#: src/scm/webid-oidc/program.scm:467 +#: src/scm/webid-oidc/program.scm:491 #, scheme-format msgid "" "\n" @@ -1616,20 +1628,20 @@ msgid "" " --~a $PORT" msgstr "" -#: src/scm/webid-oidc/program.scm:487 +#: src/scm/webid-oidc/program.scm:511 msgid "" "\n" "Running the public pages for an application" msgstr "" -#: src/scm/webid-oidc/program.scm:489 +#: src/scm/webid-oidc/program.scm:513 msgid "" "\n" "The example client application pages for\n" "webid-oidc-demo.planete-kraus.eu are served this way:" msgstr "" -#: src/scm/webid-oidc/program.scm:493 +#: src/scm/webid-oidc/program.scm:517 #, scheme-format msgid "" "\n" @@ -1645,13 +1657,13 @@ msgid "" " --~a $PORT" msgstr "" -#: src/scm/webid-oidc/program.scm:507 +#: src/scm/webid-oidc/program.scm:531 msgid "" "\n" "Running a full server" msgstr "" -#: src/scm/webid-oidc/program.scm:510 +#: src/scm/webid-oidc/program.scm:534 msgid "" "\n" "To run the server with identity provider and\n" @@ -1659,7 +1671,7 @@ msgid "" "options for the parts." msgstr "" -#: src/scm/webid-oidc/program.scm:514 +#: src/scm/webid-oidc/program.scm:538 #, scheme-format msgid "" "\n" @@ -1678,104 +1690,104 @@ msgid "" " --~a '...port...'" msgstr "" -#: src/scm/webid-oidc/program.scm:539 +#: src/scm/webid-oidc/program.scm:563 #, scheme-format msgid "" "\n" "If you find a bug, then please send a report to ~a." msgstr "" -#: src/scm/webid-oidc/program.scm:559 +#: src/scm/webid-oidc/program.scm:583 #, scheme-format msgid "The --~a argument must be a number, not ~s.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:565 +#: src/scm/webid-oidc/program.scm:589 #, scheme-format msgid "The --~a argument must be an integer, not ~s.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:571 +#: src/scm/webid-oidc/program.scm:595 #, scheme-format msgid "The --~a argument must be positive, ~s is invalid.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:576 +#: src/scm/webid-oidc/program.scm:600 #, scheme-format msgid "The --~a argument must be less than 65536, ~s is invalid.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:618 +#: src/scm/webid-oidc/program.scm:642 #, scheme-format msgid "" "Usage: ~a COMMAND [OPTIONS]...\n" "See --~a (-h).\n" msgstr "" -#: src/scm/webid-oidc/program.scm:628 src/scm/webid-oidc/program.scm:650 -#: src/scm/webid-oidc/program.scm:722 +#: src/scm/webid-oidc/program.scm:652 src/scm/webid-oidc/program.scm:674 +#: src/scm/webid-oidc/program.scm:746 #, scheme-format msgid "You must pass --~a to set the server name.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:632 +#: src/scm/webid-oidc/program.scm:656 #, scheme-format msgid "You must pass --~a to set the backend URI.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:654 src/scm/webid-oidc/program.scm:726 +#: src/scm/webid-oidc/program.scm:678 src/scm/webid-oidc/program.scm:750 #, scheme-format msgid "" "You must pass --~a to set the file where to store the identity provider " "key.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:658 src/scm/webid-oidc/program.scm:730 +#: src/scm/webid-oidc/program.scm:682 src/scm/webid-oidc/program.scm:754 #, scheme-format msgid "You must pass --~a to set the subject of the identity provider.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:662 src/scm/webid-oidc/program.scm:734 +#: src/scm/webid-oidc/program.scm:686 src/scm/webid-oidc/program.scm:758 #, scheme-format msgid "You must pass --~a to set the subject’s encrypted password.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:666 src/scm/webid-oidc/program.scm:738 +#: src/scm/webid-oidc/program.scm:690 src/scm/webid-oidc/program.scm:762 #, scheme-format msgid "You must pass --~a to set the JWKS URI.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:670 src/scm/webid-oidc/program.scm:742 +#: src/scm/webid-oidc/program.scm:694 src/scm/webid-oidc/program.scm:766 #, scheme-format msgid "You must pass --~a to set the authorization endpoint URI.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:674 src/scm/webid-oidc/program.scm:746 +#: src/scm/webid-oidc/program.scm:698 src/scm/webid-oidc/program.scm:770 #, scheme-format msgid "You must pass --~a to set the token endpoint URI.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:694 +#: src/scm/webid-oidc/program.scm:718 #, scheme-format msgid "You must pass --~a to set the application web ID.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:698 +#: src/scm/webid-oidc/program.scm:722 #, scheme-format msgid "You must pass --~a to set the redirection URI.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:702 +#: src/scm/webid-oidc/program.scm:726 #, scheme-format msgid "You must pass --~a to set the informative client name.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:706 +#: src/scm/webid-oidc/program.scm:730 #, scheme-format msgid "You must pass --~a to set the informative client URI.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:793 +#: src/scm/webid-oidc/program.scm:817 #, scheme-format msgid "Unknown command ~s\n" msgstr "" diff --git a/src/scm/webid-oidc/Makefile.am b/src/scm/webid-oidc/Makefile.am index 0046ca4..acd9ec9 100644 --- a/src/scm/webid-oidc/Makefile.am +++ b/src/scm/webid-oidc/Makefile.am @@ -45,7 +45,8 @@ dist_webidoidcmod_DATA += \ %reldir%/example-app.scm \ %reldir%/rdf-index.scm \ %reldir%/http-link.scm \ - %reldir%/offloading.scm + %reldir%/offloading.scm \ + %reldir%/catalog.scm webidoidcgo_DATA += \ %reldir%/errors.go \ @@ -78,7 +79,8 @@ webidoidcgo_DATA += \ %reldir%/example-app.go \ %reldir%/rdf-index.go \ %reldir%/http-link.go \ - %reldir%/offloading.go + %reldir%/offloading.go \ + %reldir%/catalog.go EXTRA_DIST += %reldir%/ChangeLog diff --git a/src/scm/webid-oidc/catalog.scm b/src/scm/webid-oidc/catalog.scm new file mode 100644 index 0000000..11e0877 --- /dev/null +++ b/src/scm/webid-oidc/catalog.scm @@ -0,0 +1,264 @@ +;; webid-oidc, implementation of the Solid specification +;; Copyright (C) 2020, 2021 Vivien Kraus + +;; This program is free software: you can redistribute it and/or modify +;; it under the terms of the GNU Affero General Public License as +;; published by the Free Software Foundation, either version 3 of the +;; License, or (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU Affero General Public License for more details. + +;; You should have received a copy of the GNU Affero General Public License +;; along with this program. If not, see <https://www.gnu.org/licenses/>. + +(define-module (webid-oidc catalog) + #:use-module (web uri) + #:use-module (web client) + #:use-module (ice-9 match) + #:use-module (web client) + #:use-module (rnrs bytevectors) + #:use-module (sxml simple) + #:use-module (sxml match) + #:use-module (ice-9 optargs) + #:use-module (ice-9 receive) + #:export (resolve-uri)) + +(define useful-namespaces + '((ct . "urn:oasis:names:tc:entity:xmlns:xml:catalog") + (xml . "http://www.w3.org/XML/1998/namespace"))) + +(define (run-catalog-entry do-examine-catalog base first-entry rest other-entries + uri + candidate match-length next-catalogs-rev) + ;; do-examine-catalog is the recursive function to examine a new catalog. + ;; base is the current base. + ;; rest is a catalog containing the other entries. + + ;; This function is there because I can’t nest two sxml pattern + ;; matchings. + (sxml-match + first-entry + ((ct:group (@ (xml:base ,new-base)) ,group-entries ...) + (let ((new-base (string->uri* base new-base))) + (receive (candidate match-length next-catalogs-rev) + (do-examine-catalog + `(*TOP* + (ct:catalog (@ (xml:base ,(uri->string new-base))) + ,@group-entries)) + candidate match-length next-catalogs-rev) + (do-examine-catalog rest candidate match-length next-catalogs-rev)))) + ((ct:group ,group-entries ...) + ;; The group does not have a specific base, we can merge the + ;; entries with other-entries. + (do-examine-catalog + `(*TOP* + (ct:catalog (@ (xml:base ,(uri->string base))) + ,@group-entries + ,@other-entries)) + candidate match-length next-catalogs-rev)) + ((ct:uri (@ (name ,exact-pattern) + (uri ,replacement) + (xml:base ,new-base))) + ;; exact-pattern is not relative to xml:base + (if (equal? (string->uri exact-pattern) uri) + ;; Perfect replacement, stop here + (values + ;; but replacement is relative to xml:base + (string->uri* base new-base replacement) + (string-length (uri->string uri)) + '()) + (do-examine-catalog rest candidate match-length next-catalogs-rev))) + ((ct:rewriteUri (@ (name ,pattern) + (uri ,replacement) + (xml:base ,new-base))) + (when (and (string-prefix? pattern (uri->string uri)) + (> (string-length pattern) match-length)) + ;; The match is significant + (set! candidate + (string->uri* base + new-base + (string-append + replacement + (substring (uri->string uri) + (string-length pattern))))) + (set! match-length (string-length pattern))) + ;; Maybe the match was perfect, in which case we must stop + ;; there. + (if (eqv? match-length (string-length (uri->string uri))) + (values candidate match-length '()) + (do-examine-catalog rest candidate match-length next-catalogs-rev))) + ((ct:uriSuffix (@ (uriSuffix ,suffix) + (uri ,replacement) + (base ,new-base))) + (when (and (string-suffix? suffix (uri->string uri)) + (> (string-length suffix) match-length)) + (let* ((length-kept + (- (string-length (uri->string uri)) + (string-length suffix))) + (part-kept (substring (uri->string uri) 0 length-kept))) + (set! candidate + (string->uri* base new-base (string-append part-kept suffix))) + (set! match-length (string-length suffix)))) + (if (eqv? match-length (string-length (uri->string uri))) + (values candidate match-length '()) + (do-examine-catalog rest candidate match-length next-catalogs-rev))) + ((ct:delegateURI (@ (uriStartString ,pattern) + (catalog ,next-catalog) + (base ,new-base))) + (if (string-prefix? pattern (uri->string uri)) + ;; Perfect match + (values #f 0 (list (string->uri* base new-base next-catalog))) + (do-examine-catalog rest candidate match-length next-catalogs-rev))) + ((ct:nextCatalog (@ (catalog ,next-catalog) + (base ,new-base))) + (do-examine-catalog rest candidate match-length + (cons (string->uri* base new-base next-catalog) + next-catalogs))) + (,else + (match first-entry + ((node-name attributes/children ...) + ;; The node is simply missing a base + (do-examine-catalog + `(*TOP* + (ct:catalog (@ (xml:base ,(uri->string base))) + (,node-name (@ (xml:base ,(uri->string base))) ,@attributes/children) + ,@other-entries)) + candidate match-length next-catalogs-rev)) + (else + (do-examine-catalog rest candidate match-length next-catalogs-rev)))))) + +(define (make-absolute base uri) + (when (string? base) + (set! base (string->uri base))) + (let ((final-scheme (or (uri-scheme uri) (uri-scheme base))) + (uri-with-final-authority + (if (or (uri-scheme uri) + (uri-userinfo uri) + (uri-host uri) + (uri-port uri)) + ;; we should use that of uri + uri + ;; nothing specified, use base + base)) + (final-path + (if (or (uri-scheme uri) + (uri-userinfo uri) + (uri-host uri) + (uri-port uri) + (string-prefix? "/" (uri-path uri))) + (uri-path uri) + (let with-absolute-relative-path + ((defined '()) + (components + (append (split-and-decode-uri-path (uri-path base)) + (split-and-decode-uri-path (uri-path uri))))) + (match components + (() (string-append "/" (encode-and-join-uri-path (reverse defined)))) + (("" components ...) (with-absolute-relative-path defined components)) + (("." components ...) (with-absolute-relative-path defined components)) + ((".." components ...) + (match defined + (() (error "Invalid relative URI")) + ((dropped kept ...) + (with-absolute-relative-path kept components)))) + ((head components ...) + (with-absolute-relative-path `(,head ,@defined) components)))))) + (uri-with-final-query + (if (or (uri-scheme uri) + (uri-userinfo uri) + (uri-host uri) + (uri-port uri) + (not (equal? (uri-path uri) "")) + (uri-query uri)) + uri + base))) + (build-uri final-scheme + #:userinfo (uri-userinfo uri-with-final-authority) + #:host (uri-host uri-with-final-authority) + #:port (uri-port uri-with-final-authority) + #:path final-path + #:query (uri-query uri-with-final-query) + #:fragment (uri-fragment uri)))) + +(define (string->uri** base str) + (make-absolute base (string->uri-reference str))) + +(define (string->uri* base str . rest) + (if (null? rest) + (string->uri** base str) + (apply string->uri* (string->uri** base str) rest))) + +(define (resolve-uri-in-catalog uri catalog-uri catalog other-catalog-uris) + (let do-examine-catalog ((catalog catalog) + (candidate uri) + (match-length 0) + (next-catalogs-rev (reverse other-catalog-uris))) + (sxml-match + catalog + ((*TOP* + (ct:catalog)) + ;; End of the catalog + (values candidate + match-length + (if (eqv? match-length 0) + (reverse next-catalogs-rev) + '()))) + ((*TOP* + (ct:catalog (@ (xml:base ,base)) + ,first-entry + ,other-entries ...)) + (let* ((base (string->uri* catalog-uri base)) + (rest `(*TOP* + (ct:catalog (@ (xml:base ,(uri->string base))) + ,@other-entries)))) + (run-catalog-entry do-examine-catalog base first-entry rest other-entries + uri + candidate match-length next-catalogs-rev))) + ((*TOP* + (ct:catalog ,entries ...)) + ;; No explicit xml:base + (do-examine-catalog + `(*TOP* + (ct:catalog (@ (xml:base ,(uri->string catalog-uri))) + ,@entries)) + candidate + match-length + next-catalogs-rev))))) + +(define* (get-catalog uri #:key (http-get http-get)) + (case (uri-scheme uri) + ((http https) + (receive (response response-body) (http-get uri) + (when (bytevector? response-body) + (set! response-body (utf8->string response-body))) + (xml->sxml response-body #:namespaces useful-namespaces))) + ((file) + (call-with-input-file (uri-path uri) + (lambda (port) + (xml->sxml port #:namespaces useful-namespaces)))) + (else + (error (format #f "Unsupported delegate catalog URI scheme: ~s\n" (uri-scheme uri)))))) + +(define* (resolve-uri uri #:key (http-get http-get)) + (when (string? uri) + (set! uri (string->uri uri))) + (let do-examine ((uris + (let ((var + (getenv "XML_CATALOG_FILES"))) + (if var + (map string->uri + (string-split var #\space)) + '())))) + (match uris + (() uri) + ((catalog-uri uris ...) + (let ((catalog (get-catalog catalog-uri + #:http-get http-get))) + (receive (candidate match-length next-uris) + (resolve-uri-in-catalog uri catalog-uri catalog uris) + (if (null? next-uris) + candidate + (do-examine next-uris)))))))) diff --git a/src/scm/webid-oidc/program.scm b/src/scm/webid-oidc/program.scm index 79f13cb..6b8ad29 100644 --- a/src/scm/webid-oidc/program.scm +++ b/src/scm/webid-oidc/program.scm @@ -24,6 +24,7 @@ #:use-module (webid-oidc server create) #:use-module (webid-oidc jti) #:use-module (webid-oidc offloading) + #:use-module (webid-oidc catalog) #:use-module ((webid-oidc stubs) #:prefix stubs:) #:use-module ((webid-oidc config) #:prefix cfg:) #:use-module (ice-9 optargs) @@ -55,8 +56,20 @@ (define date (date->string (time-utc->date (current-time)))) (define uri-string (if (uri? uri) (uri->string uri) uri)) (with-mutex logging-mutex + (when (getenv "XML_CATALOG_FILES") + (format (current-error-port) "~a: Warning: XML_CATALOG_FILES is set to ~s.\n" + date + (getenv "XML_CATALOG_FILES"))) (format (current-error-port) "~a: GET ~a ~s...\n" date uri-string headers)) + (set! uri (resolve-uri uri + #:http-get + (lambda* (uri . args) + (with-mutex logging-mutex + (format (current-error-port) "~a: Warning: loading XML catalog from the web, ~s.\n" + date + (uri->string uri))) + (apply http-get uri args)))) (receive (response response-body) (in-another-thread (http-get uri #:headers headers)) @@ -399,6 +412,17 @@ Options for the client service:")) (format #t (G_ " Environment variables:")) (format #t (G_ " + XML_CATALOG_FILES: the server will fetch resources on the web. By + setting this environment variable to a space-separated list of + catalog URIs, the server will redirect these requests to another + server. Currently, it is not possible to load files from the + file system, because there is no way to specify the + content-type.")) + (when (getenv "XML_CATALOG_FILES") + (format #t (G_ "the-environment-variable| + It is currently set to ~s.") + (getenv "XML_CATALOG_FILES"))) + (format #t (G_ " LANG: set the locale of the user interface (for the server commands, the user is the system administrator).")) (when (getenv "LANG") |