diff options
author | Vivien Kraus <vivien@planete-kraus.eu> | 2021-09-09 23:25:58 +0200 |
---|---|---|
committer | Vivien Kraus <vivien@planete-kraus.eu> | 2021-09-13 20:30:18 +0200 |
commit | 6a83b79c4de5986ad61a552c2612b7cce0105cda (patch) | |
tree | 8704d7b7bf2af24fab416a45ca8567148a558d05 | |
parent | 9b6c36923f3ac4a2bd8f2a70ca679bc7374aef56 (diff) |
Client: use http-request instead of http-get and http-post
-rw-r--r-- | doc/disfluid.texi | 12 | ||||
-rw-r--r-- | po/disfluid.pot | 266 | ||||
-rw-r--r-- | po/fr.po | 266 | ||||
-rw-r--r-- | src/scm/webid-oidc/client.scm | 47 | ||||
-rw-r--r-- | src/scm/webid-oidc/client/accounts.scm | 51 | ||||
-rw-r--r-- | src/scm/webid-oidc/program.scm | 1 |
6 files changed, 327 insertions, 316 deletions
diff --git a/doc/disfluid.texi b/doc/disfluid.texi index c884acf..04e69af 100644 --- a/doc/disfluid.texi +++ b/doc/disfluid.texi @@ -932,7 +932,7 @@ webid and the webid issuer. If you don’t know the user, and the user is eligible to your service, then you will only know the identity provider (issuer), because that’s what the user typed in. -@deffn function login @var{subject} @var{issuer} [#:@var{http-get}=@code{http-get}] [#:@var{http-post}=@code{http-post}] [#:@var{state}=@code{#f}] #:@var{client-id} #:@var{client-key} #:@var{redirect-uri} +@deffn function login @var{subject} @var{issuer} [#:@var{http-request}=@code{http-request}] [#:@var{state}=@code{#f}] #:@var{client-id} #:@var{client-key} #:@var{redirect-uri} Return a new account with an ID token and an access token. @var{subject} is optional. @@ -1029,15 +1029,17 @@ Constructor, predicate and accessors for the @code{<client>} record type. @end deffn -@deffn function initial-login @var{client} @var{issuer} [#:@var{http-request}=@code{http-request}] +@deffn function initial-login @var{client} @var{issuer} [#:@var{http-request}] Create an account by logging in with just the @var{issuer}, and save -the created account. +the created account. The default @var{http-request} uses the cache for +GET requests. @end deffn -@deffn function request @var{client} @var{subject} @var{issuer} [#:@var{http-request}=@code{http-request}] +@deffn function request @var{client} @var{subject} @var{issuer} [#:@var{http-request}] Log in with @var{subject} (optional, may be @code{#f}) and @var{issuer}, and return a function that takes a request and request -body and transfers it, signed, to the @var{http-request} back-end. +body and transfers it, signed, to the @var{http-request} back-end. By +default, it uses the cache for GET requests. @end deffn @deffn function serve-application @var{id} @var{redirect-uri} @var{[#client-name]} @var{[#client-uri]} diff --git a/po/disfluid.pot b/po/disfluid.pot index d18ddd6..700afde 100644 --- a/po/disfluid.pot +++ b/po/disfluid.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: disfluid SNAPSHOT\n" "Report-Msgid-Bugs-To: vivien@planete-kraus.eu\n" -"POT-Creation-Date: 2021-09-13 20:17+0200\n" +"POT-Creation-Date: 2021-09-13 20:29+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" @@ -407,57 +407,57 @@ msgstr "" msgid "Unsupported delegate catalog URI scheme: ~s\n" msgstr "" -#: src/scm/webid-oidc/client/accounts.scm:406 +#: src/scm/webid-oidc/client/accounts.scm:410 msgid "The refresh token has expired." msgstr "" -#: src/scm/webid-oidc/client/accounts.scm:413 +#: src/scm/webid-oidc/client/accounts.scm:417 #, scheme-format msgid "The token request failed with code ~s (~s)." msgstr "" -#: src/scm/webid-oidc/client/accounts.scm:422 +#: src/scm/webid-oidc/client/accounts.scm:426 msgid "The token response did not set the content type." msgstr "" -#: src/scm/webid-oidc/client/accounts.scm:430 +#: src/scm/webid-oidc/client/accounts.scm:434 msgid "The token endpoint did not respond in UTF-8." msgstr "" -#: src/scm/webid-oidc/client/accounts.scm:442 +#: src/scm/webid-oidc/client/accounts.scm:446 #, scheme-format msgid "The token response has content-type ~s, not application/json." msgstr "" -#: src/scm/webid-oidc/client/accounts.scm:452 +#: src/scm/webid-oidc/client/accounts.scm:456 msgid "The token response is not valid JSON." msgstr "" -#: src/scm/webid-oidc/client/accounts.scm:465 +#: src/scm/webid-oidc/client/accounts.scm:469 #, scheme-format msgid "The token response did not include an ID token: ~s" msgstr "" -#: src/scm/webid-oidc/client/accounts.scm:473 +#: src/scm/webid-oidc/client/accounts.scm:477 #, scheme-format msgid "The token response did not include an access token: ~s\n" msgstr "" -#: src/scm/webid-oidc/client/accounts.scm:484 +#: src/scm/webid-oidc/client/accounts.scm:488 #, scheme-format msgid "the ID token signature is invalid: ~a" msgstr "" -#: src/scm/webid-oidc/client/accounts.scm:486 +#: src/scm/webid-oidc/client/accounts.scm:490 msgid "the ID token signature is invalid" msgstr "" -#: src/scm/webid-oidc/client/accounts.scm:501 +#: src/scm/webid-oidc/client/accounts.scm:508 #, scheme-format msgid "the ID token delivered by the identity provider for ~s has ~s as webid" msgstr "" -#: src/scm/webid-oidc/client/accounts.scm:510 +#: src/scm/webid-oidc/client/accounts.scm:517 #, scheme-format msgid "The ID token delivered by the identity provider ~s is for issuer ~s." msgstr "" @@ -741,15 +741,15 @@ msgstr "" msgid "<p>The client is compatible with Solid.</p>" msgstr "" -#: src/scm/webid-oidc/hello-world.scm:64 src/scm/webid-oidc/program.scm:225 +#: src/scm/webid-oidc/hello-world.scm:64 src/scm/webid-oidc/program.scm:226 msgid "command-line|version" msgstr "" -#: src/scm/webid-oidc/hello-world.scm:66 src/scm/webid-oidc/program.scm:229 +#: src/scm/webid-oidc/hello-world.scm:66 src/scm/webid-oidc/program.scm:230 msgid "command-line|complete-corresponding-source" msgstr "" -#: src/scm/webid-oidc/hello-world.scm:68 src/scm/webid-oidc/program.scm:231 +#: src/scm/webid-oidc/hello-world.scm:68 src/scm/webid-oidc/program.scm:232 msgid "command-line|help" msgstr "" @@ -757,11 +757,11 @@ msgstr "" msgid "command-line|port" msgstr "" -#: src/scm/webid-oidc/hello-world.scm:72 src/scm/webid-oidc/program.scm:263 +#: src/scm/webid-oidc/hello-world.scm:72 src/scm/webid-oidc/program.scm:264 msgid "command-line|log-file" msgstr "" -#: src/scm/webid-oidc/hello-world.scm:74 src/scm/webid-oidc/program.scm:265 +#: src/scm/webid-oidc/hello-world.scm:74 src/scm/webid-oidc/program.scm:266 msgid "command-line|error-file" msgstr "" @@ -799,7 +799,7 @@ msgstr "" msgid "~a version ~a\n" msgstr "" -#: src/scm/webid-oidc/hello-world.scm:128 src/scm/webid-oidc/program.scm:624 +#: src/scm/webid-oidc/hello-world.scm:128 src/scm/webid-oidc/program.scm:625 msgid "" "You are legally required to link to the complete corresponding source code.\n" msgstr "" @@ -1131,139 +1131,139 @@ msgstr "" msgid "cannot encode the ID token" msgstr "" -#: src/scm/webid-oidc/program.scm:56 +#: src/scm/webid-oidc/program.scm:57 #, scheme-format msgid "~a: Warning: XML_CATALOG_FILES is set to ~s.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:59 +#: src/scm/webid-oidc/program.scm:60 #, scheme-format msgid "~a: GET ~a ~s...\n" msgstr "" -#: src/scm/webid-oidc/program.scm:66 +#: src/scm/webid-oidc/program.scm:67 #, scheme-format msgid "~a: Warning: loading XML catalog from the web, ~s.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:74 +#: src/scm/webid-oidc/program.scm:75 #, scheme-format msgid "~a: GET ~a ~s: ~s ~a bytes\n" msgstr "" -#: src/scm/webid-oidc/program.scm:121 +#: src/scm/webid-oidc/program.scm:122 msgid "really bad internal server error" msgstr "" -#: src/scm/webid-oidc/program.scm:128 +#: src/scm/webid-oidc/program.scm:129 #, scheme-format msgid "~a: ~a: Internal server error: ~a\n" msgstr "" -#: src/scm/webid-oidc/program.scm:134 +#: src/scm/webid-oidc/program.scm:135 msgid "Internal Server Error" msgstr "" -#: src/scm/webid-oidc/program.scm:137 +#: src/scm/webid-oidc/program.scm:138 msgid "Sorry, there was an error." msgstr "" -#: src/scm/webid-oidc/program.scm:158 +#: src/scm/webid-oidc/program.scm:159 #, scheme-format msgid "~a: ~s ~a ~s ~a\n" msgstr "" -#: src/scm/webid-oidc/program.scm:160 +#: src/scm/webid-oidc/program.scm:161 #, scheme-format msgid "~a: ~a (~a)" msgstr "" -#: src/scm/webid-oidc/program.scm:164 +#: src/scm/webid-oidc/program.scm:165 #, scheme-format msgid "~a: ~a" msgstr "" -#: src/scm/webid-oidc/program.scm:174 +#: src/scm/webid-oidc/program.scm:175 #, scheme-format msgid "(there was an error: ~a)" msgstr "" -#: src/scm/webid-oidc/program.scm:227 +#: src/scm/webid-oidc/program.scm:228 msgid "command-line|describe-project" msgstr "" -#: src/scm/webid-oidc/program.scm:233 +#: src/scm/webid-oidc/program.scm:234 msgid "command-line|server|port" msgstr "" -#: src/scm/webid-oidc/program.scm:235 +#: src/scm/webid-oidc/program.scm:236 msgid "command-line|server|server-name" msgstr "" -#: src/scm/webid-oidc/program.scm:237 +#: src/scm/webid-oidc/program.scm:238 msgid "command-line|server|reverse-proxy|backend-uri" msgstr "" -#: src/scm/webid-oidc/program.scm:239 +#: src/scm/webid-oidc/program.scm:240 msgid "command-line|server|reverse-proxy|header" msgstr "" -#: src/scm/webid-oidc/program.scm:241 +#: src/scm/webid-oidc/program.scm:242 msgid "command-line|server|issuer|key-file" msgstr "" -#: src/scm/webid-oidc/program.scm:243 +#: src/scm/webid-oidc/program.scm:244 msgid "command-line|server|issuer|subject" msgstr "" -#: src/scm/webid-oidc/program.scm:245 +#: src/scm/webid-oidc/program.scm:246 msgid "command-line|server|issuer|encrypted-password" msgstr "" -#: src/scm/webid-oidc/program.scm:247 +#: src/scm/webid-oidc/program.scm:248 msgid "command-line|server|issuer|encrypted-password-from-file" msgstr "" -#: src/scm/webid-oidc/program.scm:249 +#: src/scm/webid-oidc/program.scm:250 msgid "command-line|server|issuer|jwks-uri" msgstr "" -#: src/scm/webid-oidc/program.scm:251 +#: src/scm/webid-oidc/program.scm:252 msgid "command-line|server|issuer|authorization-endpoint-uri" msgstr "" -#: src/scm/webid-oidc/program.scm:253 +#: src/scm/webid-oidc/program.scm:254 msgid "command-line|server|issuer|token-endpoint-uri" msgstr "" -#: src/scm/webid-oidc/program.scm:255 +#: src/scm/webid-oidc/program.scm:256 msgid "command-line|server|client-id" msgstr "" -#: src/scm/webid-oidc/program.scm:257 +#: src/scm/webid-oidc/program.scm:258 msgid "command-line|server|redirect-uri" msgstr "" -#: src/scm/webid-oidc/program.scm:259 +#: src/scm/webid-oidc/program.scm:260 msgid "command-line|server|client-name" msgstr "" -#: src/scm/webid-oidc/program.scm:261 +#: src/scm/webid-oidc/program.scm:262 msgid "command-line|server|client-uri" msgstr "" -#: src/scm/webid-oidc/program.scm:295 +#: src/scm/webid-oidc/program.scm:296 #, scheme-format msgid "Usage: ~a COMMAND [OPTIONS]...\n" msgstr "" -#: src/scm/webid-oidc/program.scm:299 +#: src/scm/webid-oidc/program.scm:300 msgid "" "\n" "Run the disfluid COMMAND." msgstr "" -#: src/scm/webid-oidc/program.scm:302 +#: src/scm/webid-oidc/program.scm:303 msgid "" "\n" "This program is covered by the GNU Affero GPL, version 3 or\n" @@ -1273,13 +1273,13 @@ msgid "" "to all responses." msgstr "" -#: src/scm/webid-oidc/program.scm:309 +#: src/scm/webid-oidc/program.scm:310 msgid "" "\n" "Available commands:" msgstr "" -#: src/scm/webid-oidc/program.scm:311 +#: src/scm/webid-oidc/program.scm:312 #, scheme-format msgid "" "\n" @@ -1287,12 +1287,12 @@ msgid "" " run an authenticating reverse proxy." msgstr "" -#: src/scm/webid-oidc/program.scm:314 src/scm/webid-oidc/program.scm:506 -#: src/scm/webid-oidc/program.scm:707 +#: src/scm/webid-oidc/program.scm:315 src/scm/webid-oidc/program.scm:507 +#: src/scm/webid-oidc/program.scm:708 msgid "command-line|command|reverse-proxy" msgstr "" -#: src/scm/webid-oidc/program.scm:315 +#: src/scm/webid-oidc/program.scm:316 #, scheme-format msgid "" "\n" @@ -1300,12 +1300,12 @@ msgid "" " run an identity provider." msgstr "" -#: src/scm/webid-oidc/program.scm:318 src/scm/webid-oidc/program.scm:531 -#: src/scm/webid-oidc/program.scm:729 +#: src/scm/webid-oidc/program.scm:319 src/scm/webid-oidc/program.scm:532 +#: src/scm/webid-oidc/program.scm:730 msgid "command-line|command|identity-provider" msgstr "" -#: src/scm/webid-oidc/program.scm:319 +#: src/scm/webid-oidc/program.scm:320 #, scheme-format msgid "" "\n" @@ -1313,12 +1313,12 @@ msgid "" " serve the pages for a public application." msgstr "" -#: src/scm/webid-oidc/program.scm:322 src/scm/webid-oidc/program.scm:552 -#: src/scm/webid-oidc/program.scm:771 +#: src/scm/webid-oidc/program.scm:323 src/scm/webid-oidc/program.scm:553 +#: src/scm/webid-oidc/program.scm:772 msgid "command-line|command|client-service" msgstr "" -#: src/scm/webid-oidc/program.scm:323 +#: src/scm/webid-oidc/program.scm:324 #, scheme-format msgid "" "\n" @@ -1327,18 +1327,18 @@ msgid "" " facility." msgstr "" -#: src/scm/webid-oidc/program.scm:327 src/scm/webid-oidc/program.scm:578 -#: src/scm/webid-oidc/program.scm:800 +#: src/scm/webid-oidc/program.scm:328 src/scm/webid-oidc/program.scm:579 +#: src/scm/webid-oidc/program.scm:801 msgid "command-line|command|server" msgstr "" -#: src/scm/webid-oidc/program.scm:329 +#: src/scm/webid-oidc/program.scm:330 msgid "" "\n" "General options:" msgstr "" -#: src/scm/webid-oidc/program.scm:331 +#: src/scm/webid-oidc/program.scm:332 #, scheme-format msgid "" "\n" @@ -1347,7 +1347,7 @@ msgid "" " code. For instance, this would be an URI pointing to a tarball." msgstr "" -#: src/scm/webid-oidc/program.scm:336 +#: src/scm/webid-oidc/program.scm:337 #, scheme-format msgid "" "\n" @@ -1355,7 +1355,7 @@ msgid "" " display a short help message and exit." msgstr "" -#: src/scm/webid-oidc/program.scm:340 +#: src/scm/webid-oidc/program.scm:341 #, scheme-format msgid "" "\n" @@ -1363,7 +1363,7 @@ msgid "" " display the version information (~a, released ~a) and exit." msgstr "" -#: src/scm/webid-oidc/program.scm:346 +#: src/scm/webid-oidc/program.scm:347 #, scheme-format msgid "" "\n" @@ -1371,7 +1371,7 @@ msgid "" " describe the project in the DOAP vocabulary and exit." msgstr "" -#: src/scm/webid-oidc/program.scm:350 +#: src/scm/webid-oidc/program.scm:351 #, scheme-format msgid "" "\n" @@ -1379,7 +1379,7 @@ msgid "" " redirect the program standard output to FILE.log." msgstr "" -#: src/scm/webid-oidc/program.scm:354 +#: src/scm/webid-oidc/program.scm:355 #, scheme-format msgid "" "\n" @@ -1387,13 +1387,13 @@ msgid "" " redirect the program errors to FILE.err." msgstr "" -#: src/scm/webid-oidc/program.scm:359 +#: src/scm/webid-oidc/program.scm:360 msgid "" "\n" "General server-side options:" msgstr "" -#: src/scm/webid-oidc/program.scm:361 +#: src/scm/webid-oidc/program.scm:362 #, scheme-format msgid "" "\n" @@ -1401,7 +1401,7 @@ msgid "" " set the server port to bind, 8080 by default." msgstr "" -#: src/scm/webid-oidc/program.scm:365 +#: src/scm/webid-oidc/program.scm:366 #, scheme-format msgid "" "\n" @@ -1409,13 +1409,13 @@ msgid "" " set the public server URI (scheme, userinfo, host, and port)." msgstr "" -#: src/scm/webid-oidc/program.scm:370 +#: src/scm/webid-oidc/program.scm:371 msgid "" "\n" "Options for the resource server:" msgstr "" -#: src/scm/webid-oidc/program.scm:372 +#: src/scm/webid-oidc/program.scm:373 #, scheme-format msgid "" "\n" @@ -1425,7 +1425,7 @@ msgid "" " authentication." msgstr "" -#: src/scm/webid-oidc/program.scm:378 +#: src/scm/webid-oidc/program.scm:379 #, scheme-format msgid "" "\n" @@ -1434,13 +1434,13 @@ msgid "" " reverse-proxy command." msgstr "" -#: src/scm/webid-oidc/program.scm:384 +#: src/scm/webid-oidc/program.scm:385 msgid "" "\n" "Options for the identity provider:" msgstr "" -#: src/scm/webid-oidc/program.scm:386 +#: src/scm/webid-oidc/program.scm:387 #, scheme-format msgid "" "\n" @@ -1449,7 +1449,7 @@ msgid "" " key is generated. The server does not offer an HTTPS service." msgstr "" -#: src/scm/webid-oidc/program.scm:391 +#: src/scm/webid-oidc/program.scm:392 #, scheme-format msgid "" "\n" @@ -1457,7 +1457,7 @@ msgid "" " set the identity of the subject." msgstr "" -#: src/scm/webid-oidc/program.scm:395 +#: src/scm/webid-oidc/program.scm:396 #, scheme-format msgid "" "\n" @@ -1465,7 +1465,7 @@ msgid "" " set the encrypted password to recognize the user." msgstr "" -#: src/scm/webid-oidc/program.scm:399 +#: src/scm/webid-oidc/program.scm:400 #, scheme-format msgid "" "\n" @@ -1473,7 +1473,7 @@ msgid "" " load the user’s encrypted password from ENCRYPTED_PASSWORD_FILE." msgstr "" -#: src/scm/webid-oidc/program.scm:403 +#: src/scm/webid-oidc/program.scm:404 #, scheme-format msgid "" "\n" @@ -1481,7 +1481,7 @@ msgid "" " set the URI to query the key of the server." msgstr "" -#: src/scm/webid-oidc/program.scm:407 +#: src/scm/webid-oidc/program.scm:408 #, scheme-format msgid "" "\n" @@ -1489,7 +1489,7 @@ msgid "" " set the authorization endpoint of the issuer." msgstr "" -#: src/scm/webid-oidc/program.scm:411 +#: src/scm/webid-oidc/program.scm:412 #, scheme-format msgid "" "\n" @@ -1497,13 +1497,13 @@ msgid "" " set the token endpoint of the issuer." msgstr "" -#: src/scm/webid-oidc/program.scm:416 +#: src/scm/webid-oidc/program.scm:417 msgid "" "\n" "Options for the client service:" msgstr "" -#: src/scm/webid-oidc/program.scm:418 +#: src/scm/webid-oidc/program.scm:419 #, scheme-format msgid "" "\n" @@ -1512,7 +1512,7 @@ msgid "" " dereferenced to a semantic resource." msgstr "" -#: src/scm/webid-oidc/program.scm:423 +#: src/scm/webid-oidc/program.scm:424 #, scheme-format msgid "" "\n" @@ -1521,7 +1521,7 @@ msgid "" " page is presented with the code to paste in the application." msgstr "" -#: src/scm/webid-oidc/program.scm:428 +#: src/scm/webid-oidc/program.scm:429 #, scheme-format msgid "" "\n" @@ -1529,7 +1529,7 @@ msgid "" " set the user-visible application name (may be misleading...)." msgstr "" -#: src/scm/webid-oidc/program.scm:432 +#: src/scm/webid-oidc/program.scm:433 #, scheme-format msgid "" "\n" @@ -1538,13 +1538,13 @@ msgid "" " application (again, may be misleading)." msgstr "" -#: src/scm/webid-oidc/program.scm:438 +#: src/scm/webid-oidc/program.scm:439 msgid "" "\n" "Environment variables:" msgstr "" -#: src/scm/webid-oidc/program.scm:440 +#: src/scm/webid-oidc/program.scm:441 msgid "" "\n" " XML_CATALOG_FILES: the server will fetch resources on the web. By\n" @@ -1555,23 +1555,23 @@ msgid "" " content-type." msgstr "" -#: src/scm/webid-oidc/program.scm:448 src/scm/webid-oidc/program.scm:455 -#: src/scm/webid-oidc/program.scm:464 src/scm/webid-oidc/program.scm:472 -#: src/scm/webid-oidc/program.scm:480 +#: src/scm/webid-oidc/program.scm:449 src/scm/webid-oidc/program.scm:456 +#: src/scm/webid-oidc/program.scm:465 src/scm/webid-oidc/program.scm:473 +#: src/scm/webid-oidc/program.scm:481 #, scheme-format msgid "" "the-environment-variable|\n" " It is currently set to ~s." msgstr "" -#: src/scm/webid-oidc/program.scm:451 +#: src/scm/webid-oidc/program.scm:452 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:458 +#: src/scm/webid-oidc/program.scm:459 msgid "" "\n" " XDG_DATA_HOME: where the program stores persistent data. The\n" @@ -1580,7 +1580,7 @@ msgid "" " recommended to set it to /var/lib." msgstr "" -#: src/scm/webid-oidc/program.scm:467 +#: src/scm/webid-oidc/program.scm:468 msgid "" "\n" " XDG_CACHE_HOME: where the program stores and updates the seed file,\n" @@ -1588,7 +1588,7 @@ msgid "" " time. The seed file will be initialized from /dev/random." msgstr "" -#: src/scm/webid-oidc/program.scm:475 +#: src/scm/webid-oidc/program.scm:476 msgid "" "\n" " HOME: if XDG_DATA_HOME or XDG_CACHE_HOME is not set, they are\n" @@ -1596,13 +1596,13 @@ msgid "" " not used otherwise." msgstr "" -#: src/scm/webid-oidc/program.scm:484 +#: src/scm/webid-oidc/program.scm:485 msgid "" "\n" "Running a reverse proxy" msgstr "" -#: src/scm/webid-oidc/program.scm:486 +#: src/scm/webid-oidc/program.scm:487 msgid "" "\n" "Suppose that you operate data.provider.com. You want to run an\n" @@ -1615,7 +1615,7 @@ msgid "" "from this reverse proxy." msgstr "" -#: src/scm/webid-oidc/program.scm:496 +#: src/scm/webid-oidc/program.scm:497 #, scheme-format msgid "" "\n" @@ -1629,20 +1629,20 @@ msgid "" " --~a '/var/log/proxy.err'" msgstr "" -#: src/scm/webid-oidc/program.scm:511 +#: src/scm/webid-oidc/program.scm:512 msgid "" "\n" "Running an identity provider" msgstr "" -#: src/scm/webid-oidc/program.scm:513 +#: src/scm/webid-oidc/program.scm:514 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:517 +#: src/scm/webid-oidc/program.scm:518 #, scheme-format msgid "" "\n" @@ -1661,20 +1661,20 @@ msgid "" " --~a $PORT" msgstr "" -#: src/scm/webid-oidc/program.scm:537 +#: src/scm/webid-oidc/program.scm:538 msgid "" "\n" "Running the public pages for an application" msgstr "" -#: src/scm/webid-oidc/program.scm:539 +#: src/scm/webid-oidc/program.scm:540 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:543 +#: src/scm/webid-oidc/program.scm:544 #, scheme-format msgid "" "\n" @@ -1690,13 +1690,13 @@ msgid "" " --~a $PORT" msgstr "" -#: src/scm/webid-oidc/program.scm:557 +#: src/scm/webid-oidc/program.scm:558 msgid "" "\n" "Running a full server" msgstr "" -#: src/scm/webid-oidc/program.scm:560 +#: src/scm/webid-oidc/program.scm:561 msgid "" "\n" "To run the server with identity provider and\n" @@ -1704,7 +1704,7 @@ msgid "" "options for the parts." msgstr "" -#: src/scm/webid-oidc/program.scm:564 +#: src/scm/webid-oidc/program.scm:565 #, scheme-format msgid "" "\n" @@ -1723,14 +1723,14 @@ msgid "" " --~a '...port...'" msgstr "" -#: src/scm/webid-oidc/program.scm:589 +#: src/scm/webid-oidc/program.scm:590 #, scheme-format msgid "" "\n" "If you find a bug, then please send a report to ~a." msgstr "" -#: src/scm/webid-oidc/program.scm:594 +#: src/scm/webid-oidc/program.scm:595 #, scheme-format msgid "" "~a version ~a\n" @@ -1738,108 +1738,108 @@ msgid "" "Rreleased ~a\n" msgstr "" -#: src/scm/webid-oidc/program.scm:631 +#: src/scm/webid-oidc/program.scm:632 #, scheme-format msgid "The --~a argument must be a number, not ~s.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:637 +#: src/scm/webid-oidc/program.scm:638 #, scheme-format msgid "The --~a argument must be an integer, not ~s.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:643 +#: src/scm/webid-oidc/program.scm:644 #, scheme-format msgid "The --~a argument must be positive, ~s is invalid.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:648 +#: src/scm/webid-oidc/program.scm:649 #, scheme-format msgid "The --~a argument must be less than 65536, ~s is invalid.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:676 +#: src/scm/webid-oidc/program.scm:677 msgid "" "You specified two different passwords: one directly, and one from a file. " "Please set only one password.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:700 +#: src/scm/webid-oidc/program.scm:701 #, scheme-format msgid "" "Usage: ~a COMMAND [OPTIONS]...\n" "See --~a (-h).\n" msgstr "" -#: src/scm/webid-oidc/program.scm:710 src/scm/webid-oidc/program.scm:732 -#: src/scm/webid-oidc/program.scm:802 +#: src/scm/webid-oidc/program.scm:711 src/scm/webid-oidc/program.scm:733 +#: src/scm/webid-oidc/program.scm:803 #, scheme-format msgid "You must pass --~a to set the server name.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:714 +#: src/scm/webid-oidc/program.scm:715 #, scheme-format msgid "You must pass --~a to set the backend URI.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:736 src/scm/webid-oidc/program.scm:806 +#: src/scm/webid-oidc/program.scm:737 src/scm/webid-oidc/program.scm:807 #, 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:740 src/scm/webid-oidc/program.scm:810 +#: src/scm/webid-oidc/program.scm:741 src/scm/webid-oidc/program.scm:811 #, scheme-format msgid "You must pass --~a to set the subject of the identity provider.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:744 +#: src/scm/webid-oidc/program.scm:745 #, scheme-format msgid "You must pass --~a or --~a to set the subject’s encrypted password.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:748 src/scm/webid-oidc/program.scm:818 +#: src/scm/webid-oidc/program.scm:749 src/scm/webid-oidc/program.scm:819 #, scheme-format msgid "You must pass --~a to set the JWKS URI.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:752 src/scm/webid-oidc/program.scm:822 +#: src/scm/webid-oidc/program.scm:753 src/scm/webid-oidc/program.scm:823 #, scheme-format msgid "You must pass --~a to set the authorization endpoint URI.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:756 src/scm/webid-oidc/program.scm:826 +#: src/scm/webid-oidc/program.scm:757 src/scm/webid-oidc/program.scm:827 #, scheme-format msgid "You must pass --~a to set the token endpoint URI.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:774 +#: src/scm/webid-oidc/program.scm:775 #, scheme-format msgid "You must pass --~a to set the application web ID.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:778 +#: src/scm/webid-oidc/program.scm:779 #, scheme-format msgid "You must pass --~a to set the redirection URI.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:782 +#: src/scm/webid-oidc/program.scm:783 #, scheme-format msgid "You must pass --~a to set the informative client name.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:786 +#: src/scm/webid-oidc/program.scm:787 #, scheme-format msgid "You must pass --~a to set the informative client URI.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:814 +#: src/scm/webid-oidc/program.scm:815 #, scheme-format msgid "You must pass --~a to set the subject’s encrypted password.\n" msgstr "" -#: src/scm/webid-oidc/program.scm:869 +#: src/scm/webid-oidc/program.scm:870 #, scheme-format msgid "Unknown command ~s\n" msgstr "" @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: webid-oidc 0.0.0\n" "Report-Msgid-Bugs-To: vivien@planete-kraus.eu\n" -"POT-Creation-Date: 2021-09-13 20:17+0200\n" +"POT-Creation-Date: 2021-09-13 20:29+0200\n" "PO-Revision-Date: 2021-09-13 19:59+0200\n" "Last-Translator: Vivien Kraus <vivien@planete-kraus.eu>\n" "Language-Team: French <vivien@planete-kraus.eu>\n" @@ -421,58 +421,58 @@ msgstr "URI relative invalide" msgid "Unsupported delegate catalog URI scheme: ~s\n" msgstr "Schéma d’URI pour un catalogue délégé non supporté : ~s\n" -#: src/scm/webid-oidc/client/accounts.scm:406 +#: src/scm/webid-oidc/client/accounts.scm:410 msgid "The refresh token has expired." msgstr "le jeton de rafraîchissement a expiré." -#: src/scm/webid-oidc/client/accounts.scm:413 +#: src/scm/webid-oidc/client/accounts.scm:417 #, scheme-format msgid "The token request failed with code ~s (~s)." msgstr "La requête de jeton a échoué avec un code ~s (~s)." -#: src/scm/webid-oidc/client/accounts.scm:422 +#: src/scm/webid-oidc/client/accounts.scm:426 msgid "The token response did not set the content type." msgstr "Le jeton de réponse n’a pas défini de type de contenu." -#: src/scm/webid-oidc/client/accounts.scm:430 +#: src/scm/webid-oidc/client/accounts.scm:434 msgid "The token endpoint did not respond in UTF-8." msgstr "Le terminal de jetonn n’a pas répondu en UTF-8." -#: src/scm/webid-oidc/client/accounts.scm:442 +#: src/scm/webid-oidc/client/accounts.scm:446 #, scheme-format msgid "The token response has content-type ~s, not application/json." msgstr "La réponse de jeton a un type de contenu ~s, pas application/json." -#: src/scm/webid-oidc/client/accounts.scm:452 +#: src/scm/webid-oidc/client/accounts.scm:456 msgid "The token response is not valid JSON." msgstr "La réponse de jeton n’est pas un JSON valide." -#: src/scm/webid-oidc/client/accounts.scm:465 +#: src/scm/webid-oidc/client/accounts.scm:469 #, scheme-format msgid "The token response did not include an ID token: ~s" msgstr "La réponse de jeton n’a pas inclus de jeton d’ID : ~s" -#: src/scm/webid-oidc/client/accounts.scm:473 +#: src/scm/webid-oidc/client/accounts.scm:477 #, scheme-format msgid "The token response did not include an access token: ~s\n" msgstr "La réponse de jeton n’a pas inclus de jeton d’accès : ~s\n" -#: src/scm/webid-oidc/client/accounts.scm:484 +#: src/scm/webid-oidc/client/accounts.scm:488 #, scheme-format msgid "the ID token signature is invalid: ~a" msgstr "la signature du jeton d’ID est invalide : ~a" -#: src/scm/webid-oidc/client/accounts.scm:486 +#: src/scm/webid-oidc/client/accounts.scm:490 msgid "the ID token signature is invalid" msgstr "la signature du jeton d’ID est invalide" -#: src/scm/webid-oidc/client/accounts.scm:501 +#: src/scm/webid-oidc/client/accounts.scm:508 #, scheme-format msgid "the ID token delivered by the identity provider for ~s has ~s as webid" msgstr "" "le jeton d’ID délivré par le fournisseur d’identité pour ~s a ~s pour webid" -#: src/scm/webid-oidc/client/accounts.scm:510 +#: src/scm/webid-oidc/client/accounts.scm:517 #, scheme-format msgid "The ID token delivered by the identity provider ~s is for issuer ~s." msgstr "" @@ -776,15 +776,15 @@ msgstr "<h1>Bonjour, ~a !</h1>" msgid "<p>The client is compatible with Solid.</p>" msgstr "<p>Le client est compatible avec Solid.</p>" -#: src/scm/webid-oidc/hello-world.scm:64 src/scm/webid-oidc/program.scm:225 +#: src/scm/webid-oidc/hello-world.scm:64 src/scm/webid-oidc/program.scm:226 msgid "command-line|version" msgstr "version" -#: src/scm/webid-oidc/hello-world.scm:66 src/scm/webid-oidc/program.scm:229 +#: src/scm/webid-oidc/hello-world.scm:66 src/scm/webid-oidc/program.scm:230 msgid "command-line|complete-corresponding-source" msgstr "code-source-correspondant-complet" -#: src/scm/webid-oidc/hello-world.scm:68 src/scm/webid-oidc/program.scm:231 +#: src/scm/webid-oidc/hello-world.scm:68 src/scm/webid-oidc/program.scm:232 msgid "command-line|help" msgstr "aide" @@ -792,11 +792,11 @@ msgstr "aide" msgid "command-line|port" msgstr "port" -#: src/scm/webid-oidc/hello-world.scm:72 src/scm/webid-oidc/program.scm:263 +#: src/scm/webid-oidc/hello-world.scm:72 src/scm/webid-oidc/program.scm:264 msgid "command-line|log-file" msgstr "fichier-journal" -#: src/scm/webid-oidc/hello-world.scm:74 src/scm/webid-oidc/program.scm:265 +#: src/scm/webid-oidc/hello-world.scm:74 src/scm/webid-oidc/program.scm:266 msgid "command-line|error-file" msgstr "fichier-erreur" @@ -859,7 +859,7 @@ msgstr "" msgid "~a version ~a\n" msgstr "~a version ~a\n" -#: src/scm/webid-oidc/hello-world.scm:128 src/scm/webid-oidc/program.scm:624 +#: src/scm/webid-oidc/hello-world.scm:128 src/scm/webid-oidc/program.scm:625 msgid "" "You are legally required to link to the complete corresponding source code.\n" msgstr "" @@ -1200,133 +1200,133 @@ msgstr "impossible d’encoder le jeton d’ID : ~a" msgid "cannot encode the ID token" msgstr "impossible d’encoder le jeton d’ID" -#: src/scm/webid-oidc/program.scm:56 +#: src/scm/webid-oidc/program.scm:57 #, scheme-format msgid "~a: Warning: XML_CATALOG_FILES is set to ~s.\n" msgstr "~a : Attention : XML_CATALOG_FILES vaut ~s.\n" -#: src/scm/webid-oidc/program.scm:59 +#: src/scm/webid-oidc/program.scm:60 #, scheme-format msgid "~a: GET ~a ~s...\n" msgstr "~a : GET ~a ~s…\n" -#: src/scm/webid-oidc/program.scm:66 +#: src/scm/webid-oidc/program.scm:67 #, scheme-format msgid "~a: Warning: loading XML catalog from the web, ~s.\n" msgstr "~a : Attention : chargement d’un catalogue XML depuis le web, ~s.\n" -#: src/scm/webid-oidc/program.scm:74 +#: src/scm/webid-oidc/program.scm:75 #, scheme-format msgid "~a: GET ~a ~s: ~s ~a bytes\n" msgstr "~a : GET ~a ~s : ~s ~a octets\n" -#: src/scm/webid-oidc/program.scm:121 +#: src/scm/webid-oidc/program.scm:122 msgid "really bad internal server error" msgstr "erreur interne du serveur vraiment grave" -#: src/scm/webid-oidc/program.scm:128 +#: src/scm/webid-oidc/program.scm:129 #, 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:134 +#: src/scm/webid-oidc/program.scm:135 msgid "Internal Server Error" msgstr "Erreur Interne du Serveur" -#: src/scm/webid-oidc/program.scm:137 +#: src/scm/webid-oidc/program.scm:138 msgid "Sorry, there was an error." msgstr "Toutes nos excuses, il y a eu une erreurr." -#: src/scm/webid-oidc/program.scm:158 +#: src/scm/webid-oidc/program.scm:159 #, scheme-format msgid "~a: ~s ~a ~s ~a\n" msgstr "~a : ~s ~a ~s ~a\n" -#: src/scm/webid-oidc/program.scm:160 +#: src/scm/webid-oidc/program.scm:161 #, scheme-format msgid "~a: ~a (~a)" msgstr "~a : ~a (~a)" -#: src/scm/webid-oidc/program.scm:164 +#: src/scm/webid-oidc/program.scm:165 #, scheme-format msgid "~a: ~a" msgstr "~a : ~a" -#: src/scm/webid-oidc/program.scm:174 +#: src/scm/webid-oidc/program.scm:175 #, scheme-format msgid "(there was an error: ~a)" msgstr "(il y a eu une erreur : ~a)" -#: src/scm/webid-oidc/program.scm:227 +#: src/scm/webid-oidc/program.scm:228 msgid "command-line|describe-project" msgstr "décrire-projet" -#: src/scm/webid-oidc/program.scm:233 +#: src/scm/webid-oidc/program.scm:234 msgid "command-line|server|port" msgstr "port" -#: src/scm/webid-oidc/program.scm:235 +#: src/scm/webid-oidc/program.scm:236 msgid "command-line|server|server-name" msgstr "nom-du-serveur" -#: src/scm/webid-oidc/program.scm:237 +#: src/scm/webid-oidc/program.scm:238 msgid "command-line|server|reverse-proxy|backend-uri" msgstr "uri-arrière-plan" -#: src/scm/webid-oidc/program.scm:239 +#: src/scm/webid-oidc/program.scm:240 msgid "command-line|server|reverse-proxy|header" msgstr "en-tête" -#: src/scm/webid-oidc/program.scm:241 +#: src/scm/webid-oidc/program.scm:242 msgid "command-line|server|issuer|key-file" msgstr "fichier-clé" -#: src/scm/webid-oidc/program.scm:243 +#: src/scm/webid-oidc/program.scm:244 msgid "command-line|server|issuer|subject" msgstr "sujet" -#: src/scm/webid-oidc/program.scm:245 +#: src/scm/webid-oidc/program.scm:246 msgid "command-line|server|issuer|encrypted-password" msgstr "mot-de-passe-chiffré" -#: src/scm/webid-oidc/program.scm:247 +#: src/scm/webid-oidc/program.scm:248 msgid "command-line|server|issuer|encrypted-password-from-file" msgstr "fichier-de-mot-de-passe-chiffré" -#: src/scm/webid-oidc/program.scm:249 +#: src/scm/webid-oidc/program.scm:250 msgid "command-line|server|issuer|jwks-uri" msgstr "uri-jwks" -#: src/scm/webid-oidc/program.scm:251 +#: src/scm/webid-oidc/program.scm:252 msgid "command-line|server|issuer|authorization-endpoint-uri" msgstr "uri-terminal-autorisation" -#: src/scm/webid-oidc/program.scm:253 +#: src/scm/webid-oidc/program.scm:254 msgid "command-line|server|issuer|token-endpoint-uri" msgstr "uri-terminal-jeton" -#: src/scm/webid-oidc/program.scm:255 +#: src/scm/webid-oidc/program.scm:256 msgid "command-line|server|client-id" msgstr "id-client" -#: src/scm/webid-oidc/program.scm:257 +#: src/scm/webid-oidc/program.scm:258 msgid "command-line|server|redirect-uri" msgstr "uri-redirection" -#: src/scm/webid-oidc/program.scm:259 +#: src/scm/webid-oidc/program.scm:260 msgid "command-line|server|client-name" msgstr "nom-client" -#: src/scm/webid-oidc/program.scm:261 +#: src/scm/webid-oidc/program.scm:262 msgid "command-line|server|client-uri" msgstr "uri-client" -#: src/scm/webid-oidc/program.scm:295 +#: src/scm/webid-oidc/program.scm:296 #, scheme-format msgid "Usage: ~a COMMAND [OPTIONS]...\n" msgstr "Utilisation : ~a COMMANDE [OPTIONS]...\n" -#: src/scm/webid-oidc/program.scm:299 +#: src/scm/webid-oidc/program.scm:300 msgid "" "\n" "Run the disfluid COMMAND." @@ -1334,7 +1334,7 @@ msgstr "" "\n" "Exécute la COMMANDE disfluid." -#: src/scm/webid-oidc/program.scm:302 +#: src/scm/webid-oidc/program.scm:303 msgid "" "\n" "This program is covered by the GNU Affero GPL, version 3 or\n" @@ -1350,7 +1350,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:309 +#: src/scm/webid-oidc/program.scm:310 msgid "" "\n" "Available commands:" @@ -1358,7 +1358,7 @@ msgstr "" "\n" "Commandes disponibles :" -#: src/scm/webid-oidc/program.scm:311 +#: src/scm/webid-oidc/program.scm:312 #, scheme-format msgid "" "\n" @@ -1369,12 +1369,12 @@ msgstr "" " ~a :\n" " exécute le proxy inverse authentifiant." -#: src/scm/webid-oidc/program.scm:314 src/scm/webid-oidc/program.scm:506 -#: src/scm/webid-oidc/program.scm:707 +#: src/scm/webid-oidc/program.scm:315 src/scm/webid-oidc/program.scm:507 +#: src/scm/webid-oidc/program.scm:708 msgid "command-line|command|reverse-proxy" msgstr "proxy-inversé" -#: src/scm/webid-oidc/program.scm:315 +#: src/scm/webid-oidc/program.scm:316 #, scheme-format msgid "" "\n" @@ -1385,12 +1385,12 @@ msgstr "" " ~a :\n" " exécute un fournisseur d’identité." -#: src/scm/webid-oidc/program.scm:318 src/scm/webid-oidc/program.scm:531 -#: src/scm/webid-oidc/program.scm:729 +#: src/scm/webid-oidc/program.scm:319 src/scm/webid-oidc/program.scm:532 +#: src/scm/webid-oidc/program.scm:730 msgid "command-line|command|identity-provider" msgstr "fournisseur-identité" -#: src/scm/webid-oidc/program.scm:319 +#: src/scm/webid-oidc/program.scm:320 #, scheme-format msgid "" "\n" @@ -1401,12 +1401,12 @@ msgstr "" " ~a :\n" " sert les pages d’une application publique." -#: src/scm/webid-oidc/program.scm:322 src/scm/webid-oidc/program.scm:552 -#: src/scm/webid-oidc/program.scm:771 +#: src/scm/webid-oidc/program.scm:323 src/scm/webid-oidc/program.scm:553 +#: src/scm/webid-oidc/program.scm:772 msgid "command-line|command|client-service" msgstr "service-client" -#: src/scm/webid-oidc/program.scm:323 +#: src/scm/webid-oidc/program.scm:324 #, scheme-format msgid "" "\n" @@ -1419,12 +1419,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:327 src/scm/webid-oidc/program.scm:578 -#: src/scm/webid-oidc/program.scm:800 +#: src/scm/webid-oidc/program.scm:328 src/scm/webid-oidc/program.scm:579 +#: src/scm/webid-oidc/program.scm:801 msgid "command-line|command|server" msgstr "serveur" -#: src/scm/webid-oidc/program.scm:329 +#: src/scm/webid-oidc/program.scm:330 msgid "" "\n" "General options:" @@ -1432,7 +1432,7 @@ msgstr "" "\n" "Options générales :" -#: src/scm/webid-oidc/program.scm:331 +#: src/scm/webid-oidc/program.scm:332 #, scheme-format msgid "" "\n" @@ -1446,7 +1446,7 @@ msgstr "" " correspondant. Par exemple, MOYEN serait une URI pointant vers\n" " l’archive de code." -#: src/scm/webid-oidc/program.scm:336 +#: src/scm/webid-oidc/program.scm:337 #, scheme-format msgid "" "\n" @@ -1457,7 +1457,7 @@ msgstr "" " -h, --~a :\n" " affiche un court message d’aide et quitte." -#: src/scm/webid-oidc/program.scm:340 +#: src/scm/webid-oidc/program.scm:341 #, scheme-format msgid "" "\n" @@ -1468,7 +1468,7 @@ msgstr "" " -v, --~a :\n" " affiche le numéro de version (~a, publiée le ~a) et quitte." -#: src/scm/webid-oidc/program.scm:346 +#: src/scm/webid-oidc/program.scm:347 #, scheme-format msgid "" "\n" @@ -1479,7 +1479,7 @@ msgstr "" " --~a :\n" " décrit le projet dans le vocabulaire DOAP et quitte." -#: src/scm/webid-oidc/program.scm:350 +#: src/scm/webid-oidc/program.scm:351 #, scheme-format msgid "" "\n" @@ -1490,7 +1490,7 @@ msgstr "" " -l FICHIER.journal, --~a=FICHIER.journal :\n" " redirige la sortie standard du programme vers FICHIER.journal." -#: src/scm/webid-oidc/program.scm:354 +#: src/scm/webid-oidc/program.scm:355 #, scheme-format msgid "" "\n" @@ -1501,7 +1501,7 @@ msgstr "" " -e FICHIER.erreurs, --~a=FICHIER.erreurs :\n" " redirige les erreurs du programme vers FICHIER.erreurs." -#: src/scm/webid-oidc/program.scm:359 +#: src/scm/webid-oidc/program.scm:360 msgid "" "\n" "General server-side options:" @@ -1509,7 +1509,7 @@ msgstr "" "\n" "Options générales pour un serveur :" -#: src/scm/webid-oidc/program.scm:361 +#: src/scm/webid-oidc/program.scm:362 #, scheme-format msgid "" "\n" @@ -1520,7 +1520,7 @@ msgstr "" " -p PORT, --~a=PORT :\n" " définit le port à lier, 8080 par défaut." -#: src/scm/webid-oidc/program.scm:365 +#: src/scm/webid-oidc/program.scm:366 #, scheme-format msgid "" "\n" @@ -1532,7 +1532,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:370 +#: src/scm/webid-oidc/program.scm:371 msgid "" "\n" "Options for the resource server:" @@ -1540,7 +1540,7 @@ msgstr "" "\n" "Options pour le serveur de ressources :" -#: src/scm/webid-oidc/program.scm:372 +#: src/scm/webid-oidc/program.scm:373 #, scheme-format msgid "" "\n" @@ -1555,7 +1555,7 @@ msgstr "" " authentifié, XXX-Agent par défaut. Pour un serveur complet, ceci\n" " désactive l’authentification par Solid-OIDC." -#: src/scm/webid-oidc/program.scm:378 +#: src/scm/webid-oidc/program.scm:379 #, scheme-format msgid "" "\n" @@ -1568,7 +1568,7 @@ msgstr "" " définit l’URI sortante du proxy inversé, seulement pour la\n" " commande proxy-inversé." -#: src/scm/webid-oidc/program.scm:384 +#: src/scm/webid-oidc/program.scm:385 msgid "" "\n" "Options for the identity provider:" @@ -1576,7 +1576,7 @@ msgstr "" "\n" "Options du fournisseur d’identité :" -#: src/scm/webid-oidc/program.scm:386 +#: src/scm/webid-oidc/program.scm:387 #, scheme-format msgid "" "\n" @@ -1590,7 +1590,7 @@ msgstr "" " nouvelle clé sera générée. Le serveur n’offre pas de service\n" " HTTPS." -#: src/scm/webid-oidc/program.scm:391 +#: src/scm/webid-oidc/program.scm:392 #, scheme-format msgid "" "\n" @@ -1601,7 +1601,7 @@ msgstr "" " -s WEBID, --~a=WEBID :\n" " définit l'identité du sujet." -#: src/scm/webid-oidc/program.scm:395 +#: src/scm/webid-oidc/program.scm:396 #, scheme-format msgid "" "\n" @@ -1612,7 +1612,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:399 +#: src/scm/webid-oidc/program.scm:400 #, scheme-format msgid "" "\n" @@ -1625,7 +1625,7 @@ msgstr "" " lit le mot de passe chiffré de l’utilisateur dans " "FICHIER_DE_MOT_DE_PASSE_CHIFFRÉ." -#: src/scm/webid-oidc/program.scm:403 +#: src/scm/webid-oidc/program.scm:404 #, scheme-format msgid "" "\n" @@ -1636,7 +1636,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:407 +#: src/scm/webid-oidc/program.scm:408 #, scheme-format msgid "" "\n" @@ -1648,7 +1648,7 @@ msgstr "" " définit l'URI du terminal d'autorisation de l’émetteur\n" " d’identité." -#: src/scm/webid-oidc/program.scm:411 +#: src/scm/webid-oidc/program.scm:412 #, scheme-format msgid "" "\n" @@ -1659,7 +1659,7 @@ msgstr "" " -t URI, --~a=URI :\n" " définit le terminal de jeton de l’émetteur d’identité." -#: src/scm/webid-oidc/program.scm:416 +#: src/scm/webid-oidc/program.scm:417 msgid "" "\n" "Options for the client service:" @@ -1667,7 +1667,7 @@ msgstr "" "\n" "Options pour le service associé à un client :" -#: src/scm/webid-oidc/program.scm:418 +#: src/scm/webid-oidc/program.scm:419 #, scheme-format msgid "" "\n" @@ -1680,7 +1680,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:423 +#: src/scm/webid-oidc/program.scm:424 #, scheme-format msgid "" "\n" @@ -1694,7 +1694,7 @@ msgstr "" " d’autorisation. La page de redirection affiche le code à coller\n" " dans l’application." -#: src/scm/webid-oidc/program.scm:428 +#: src/scm/webid-oidc/program.scm:429 #, scheme-format msgid "" "\n" @@ -1706,7 +1706,7 @@ msgstr "" " définit le nom de l’application visible par l’utilisateur (peut\n" " être trompeur…)." -#: src/scm/webid-oidc/program.scm:432 +#: src/scm/webid-oidc/program.scm:433 #, scheme-format msgid "" "\n" @@ -1719,7 +1719,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:438 +#: src/scm/webid-oidc/program.scm:439 msgid "" "\n" "Environment variables:" @@ -1727,7 +1727,7 @@ msgstr "" "\n" "Variables d’environnement :" -#: src/scm/webid-oidc/program.scm:440 +#: src/scm/webid-oidc/program.scm:441 msgid "" "\n" " XML_CATALOG_FILES: the server will fetch resources on the web. By\n" @@ -1746,9 +1746,9 @@ msgstr "" " 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:448 src/scm/webid-oidc/program.scm:455 -#: src/scm/webid-oidc/program.scm:464 src/scm/webid-oidc/program.scm:472 -#: src/scm/webid-oidc/program.scm:480 +#: src/scm/webid-oidc/program.scm:449 src/scm/webid-oidc/program.scm:456 +#: src/scm/webid-oidc/program.scm:465 src/scm/webid-oidc/program.scm:473 +#: src/scm/webid-oidc/program.scm:481 #, scheme-format msgid "" "the-environment-variable|\n" @@ -1757,7 +1757,7 @@ msgstr "" " \n" " Elle vaut actuellement ~s." -#: src/scm/webid-oidc/program.scm:451 +#: src/scm/webid-oidc/program.scm:452 msgid "" "\n" " LANG: set the locale of the user interface (for the server commands,\n" @@ -1767,7 +1767,7 @@ msgstr "" " 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:458 +#: src/scm/webid-oidc/program.scm:459 msgid "" "\n" " XDG_DATA_HOME: where the program stores persistent data. The\n" @@ -1782,7 +1782,7 @@ msgstr "" " ici. Pour un service système, il est recommandé d’utiliser\n" " /var/lib." -#: src/scm/webid-oidc/program.scm:467 +#: src/scm/webid-oidc/program.scm:468 msgid "" "\n" " XDG_CACHE_HOME: where the program stores and updates the seed file,\n" @@ -1795,7 +1795,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:475 +#: src/scm/webid-oidc/program.scm:476 msgid "" "\n" " HOME: if XDG_DATA_HOME or XDG_CACHE_HOME is not set, they are\n" @@ -1807,7 +1807,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:484 +#: src/scm/webid-oidc/program.scm:485 msgid "" "\n" "Running a reverse proxy" @@ -1815,7 +1815,7 @@ msgstr "" "\n" "Exécution d’un proxy inversé" -#: src/scm/webid-oidc/program.scm:486 +#: src/scm/webid-oidc/program.scm:487 msgid "" "\n" "Suppose that you operate data.provider.com. You want to run an\n" @@ -1837,7 +1837,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:496 +#: src/scm/webid-oidc/program.scm:497 #, scheme-format msgid "" "\n" @@ -1861,7 +1861,7 @@ msgstr "" " --~a '/var/log/proxy.log' \\\n" " --~a '/var/log/proxy.err'" -#: src/scm/webid-oidc/program.scm:511 +#: src/scm/webid-oidc/program.scm:512 msgid "" "\n" "Running an identity provider" @@ -1869,7 +1869,7 @@ msgstr "" "\n" "Exécution d’un fournisseur d’identité" -#: src/scm/webid-oidc/program.scm:513 +#: src/scm/webid-oidc/program.scm:514 msgid "" "\n" "The identity provider running at webid-oidc-demo.planete-kraus.eu is\n" @@ -1880,7 +1880,7 @@ msgstr "" "webid-oidc-demo.planete-kraus.eu est invoqué avec les options\n" "suivantes :" -#: src/scm/webid-oidc/program.scm:517 +#: src/scm/webid-oidc/program.scm:518 #, scheme-format msgid "" "\n" @@ -1914,7 +1914,7 @@ msgstr "" " --~a 'https://webid-oidc-demo.planete-kraus.eu/token' \\\n" " --~a $PORT" -#: src/scm/webid-oidc/program.scm:537 +#: src/scm/webid-oidc/program.scm:538 msgid "" "\n" "Running the public pages for an application" @@ -1922,7 +1922,7 @@ msgstr "" "\n" "Service des pages publiques pour une application" -#: src/scm/webid-oidc/program.scm:539 +#: src/scm/webid-oidc/program.scm:540 msgid "" "\n" "The example client application pages for\n" @@ -1932,7 +1932,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:543 +#: src/scm/webid-oidc/program.scm:544 #, scheme-format msgid "" "\n" @@ -1960,7 +1960,7 @@ msgstr "" "html#Running-a-client' \\\n" " --~a $PORT" -#: src/scm/webid-oidc/program.scm:557 +#: src/scm/webid-oidc/program.scm:558 msgid "" "\n" "Running a full server" @@ -1968,7 +1968,7 @@ msgstr "" "\n" "Exécution d’un serveur complet" -#: src/scm/webid-oidc/program.scm:560 +#: src/scm/webid-oidc/program.scm:561 msgid "" "\n" "To run the server with identity provider and\n" @@ -1980,7 +1980,7 @@ msgstr "" "un serveur de ressources pour un utilisateur particulier, vous devez\n" "combiner les options des parties." -#: src/scm/webid-oidc/program.scm:564 +#: src/scm/webid-oidc/program.scm:565 #, scheme-format msgid "" "\n" @@ -2014,7 +2014,7 @@ msgstr "" " --~a 'https://data.planete-kraus.eu/token' \\\n" " --~a '...port...'" -#: src/scm/webid-oidc/program.scm:589 +#: src/scm/webid-oidc/program.scm:590 #, scheme-format msgid "" "\n" @@ -2023,7 +2023,7 @@ msgstr "" "\n" "Si vous trouvez une erreur, veuillez en envoyer un rapport à ~a." -#: src/scm/webid-oidc/program.scm:594 +#: src/scm/webid-oidc/program.scm:595 #, scheme-format msgid "" "~a version ~a\n" @@ -2034,27 +2034,27 @@ msgstr "" "\n" "Publiée le ~a\n" -#: src/scm/webid-oidc/program.scm:631 +#: src/scm/webid-oidc/program.scm:632 #, 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:637 +#: src/scm/webid-oidc/program.scm:638 #, 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:643 +#: src/scm/webid-oidc/program.scm:644 #, 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:648 +#: src/scm/webid-oidc/program.scm:649 #, 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:676 +#: src/scm/webid-oidc/program.scm:677 msgid "" "You specified two different passwords: one directly, and one from a file. " "Please set only one password.\n" @@ -2062,7 +2062,7 @@ msgstr "" "Vous avez spécifié deux mots de passe différents : l’un directement,\n" "et un autre depuis un fichier. Veuillez n’en spécifier qu’un.\n" -#: src/scm/webid-oidc/program.scm:700 +#: src/scm/webid-oidc/program.scm:701 #, scheme-format msgid "" "Usage: ~a COMMAND [OPTIONS]...\n" @@ -2071,18 +2071,18 @@ msgstr "" "Utilisation : ~a COMMANDE [OPTIONS]...\n" "Voir --~a (-h).\n" -#: src/scm/webid-oidc/program.scm:710 src/scm/webid-oidc/program.scm:732 -#: src/scm/webid-oidc/program.scm:802 +#: src/scm/webid-oidc/program.scm:711 src/scm/webid-oidc/program.scm:733 +#: src/scm/webid-oidc/program.scm:803 #, 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:714 +#: src/scm/webid-oidc/program.scm:715 #, 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:736 src/scm/webid-oidc/program.scm:806 +#: src/scm/webid-oidc/program.scm:737 src/scm/webid-oidc/program.scm:807 #, scheme-format msgid "" "You must pass --~a to set the file where to store the identity provider " @@ -2091,66 +2091,66 @@ 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:740 src/scm/webid-oidc/program.scm:810 +#: src/scm/webid-oidc/program.scm:741 src/scm/webid-oidc/program.scm:811 #, 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:744 +#: src/scm/webid-oidc/program.scm:745 #, scheme-format msgid "You must pass --~a or --~a to set the subject’s encrypted password.\n" msgstr "" "Vous devez passer --~a ou --~a pour définir le mot de passe chiffré du " "sujet.\n" -#: src/scm/webid-oidc/program.scm:748 src/scm/webid-oidc/program.scm:818 +#: src/scm/webid-oidc/program.scm:749 src/scm/webid-oidc/program.scm:819 #, 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:752 src/scm/webid-oidc/program.scm:822 +#: src/scm/webid-oidc/program.scm:753 src/scm/webid-oidc/program.scm:823 #, 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:756 src/scm/webid-oidc/program.scm:826 +#: src/scm/webid-oidc/program.scm:757 src/scm/webid-oidc/program.scm:827 #, 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:774 +#: src/scm/webid-oidc/program.scm:775 #, 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:778 +#: src/scm/webid-oidc/program.scm:779 #, 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:782 +#: src/scm/webid-oidc/program.scm:783 #, 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:786 +#: src/scm/webid-oidc/program.scm:787 #, 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:814 +#: src/scm/webid-oidc/program.scm:815 #, 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:869 +#: src/scm/webid-oidc/program.scm:870 #, scheme-format msgid "Unknown command ~s\n" msgstr "Commande inconnue ~s\n" diff --git a/src/scm/webid-oidc/client.scm b/src/scm/webid-oidc/client.scm index 1aad35d..461c4a7 100644 --- a/src/scm/webid-oidc/client.scm +++ b/src/scm/webid-oidc/client.scm @@ -25,6 +25,7 @@ #:use-module ((webid-oidc stubs) #:prefix stubs:) #:use-module ((webid-oidc config) #:prefix cfg:) #:use-module ((webid-oidc client accounts) #:prefix client:) + #:use-module ((webid-oidc cache) #:prefix cache:) #:use-module (web uri) #:use-module (web client) #:use-module (web request) @@ -104,33 +105,35 @@ ((value port) (original-writer value port)))))) +(define* default-http-get-with-cache + (cache:with-cache)) + +(define* (default-http-request uri . all-args) + (let try-get-with-cache ((args all-args)) + (match args + ((#:headers _) + (apply default-http-get-with-cache all-args)) + ((#:headers _ other-args ...) + (try-get-with-cache other-args)) + (else + (apply http-request all-args))))) + (define* (initial-login client issuer #:key - (http-request http-request)) + (http-request default-http-request)) (setup-headers!) (match client (($ <client> client-id client-key redirect-uri) - (let ((my-http-get - (lambda* (uri . args) - (apply http-request uri - #:method 'GET - args))) - (my-http-post - (lambda* (uri . args) - (apply http-request uri - #:method 'POST - args)))) - (client:save-account - (client:login #f issuer - #:http-get my-http-get - #:http-post my-http-post - #:client-id client-id - #:client-key client-key - #:redirect-uri redirect-uri)))))) + (client:save-account + (client:login #f issuer + #:http-request http-request + #:client-id client-id + #:client-key client-key + #:redirect-uri redirect-uri))))) (define* (request client subject issuer #:key - (http-request http-request)) + (http-request default-http-request)) (setup-headers!) (match client (($ <client> client-id client-key redirect-uri) @@ -149,16 +152,14 @@ ((subject issuer) (client:save-account (client:login subject issuer - #:http-get my-http-get - #:http-post my-http-post + #:http-request http-request #:client-id client-id #:client-key client-key #:redirect-uri redirect-uri))) ((($ <client:account> subject issuer _ _ _ _)) (client:save-account (client:login subject issuer - #:http-get my-http-get - #:http-post my-http-post + #:http-request http-request #:client-id client-id #:client-key client-key #:redirect-uri redirect-uri))))))) diff --git a/src/scm/webid-oidc/client/accounts.scm b/src/scm/webid-oidc/client/accounts.scm index d7219e3..cd69c59 100644 --- a/src/scm/webid-oidc/client/accounts.scm +++ b/src/scm/webid-oidc/client/accounts.scm @@ -310,12 +310,15 @@ (($ <account> subject issuer id-token access-token _ keypair) (make-account subject issuer id-token access-token #f keypair)))) +(define (http-request->http-get http-request) + (lambda* (uri . all-args) + (apply http-request uri #:method 'GET all-args))) + ;; subject is optional. If the user is unknown, ask for an issuer and ;; pass #f as subject. (define* (login subject issuer #:key - (http-get http-get) - (http-post http-post) + (http-request http-request) (state #f) client-id client-key @@ -337,7 +340,7 @@ (uri-host issuer) #:userinfo (uri-userinfo issuer) #:port (uri-port issuer) - #:http-get http-get))) + #:http-get (http-request->http-get http-request)))) (values (cfg:oidc-configuration-authorization-endpoint configuration) (cfg:oidc-configuration-token-endpoint configuration))) @@ -379,23 +382,24 @@ #:htu token-endpoint))) ;; Post the token request with the correct grant: (receive (response response-body) - (http-post token-endpoint - #:body - (string-join - (map - (match-lambda - ((key . value) - (string-append (uri-encode key) - "=" - (uri-encode value)))) - `(("grant_type" . ,grant-type) - (,(if available-refresh-token - "refresh_token" - "code") . ,grant))) - "&") - #:headers - `((content-type application/x-www-form-urlencoded) - (dpop . ,dpop-proof))) + (http-request token-endpoint + #:method 'POST + #:body + (string-join + (map + (match-lambda + ((key . value) + (string-append (uri-encode key) + "=" + (uri-encode value)))) + `(("grant_type" . ,grant-type) + (,(if available-refresh-token + "refresh_token" + "code") . ,grant))) + "&") + #:headers + `((content-type application/x-www-form-urlencoded) + (dpop . ,dpop-proof))) ;; Check that the token endpoint responded correctly. (when (eqv? (response-code response) 403) (when subject @@ -440,7 +444,7 @@ 'application/json) (let ((final-message (format #f (G_ "The token response has content-type ~s, not application/json.") - (response-content-type response)))) + (response-content-type response)))) (raise-exception (make-exception (make-token-request-failed response response-body) @@ -490,7 +494,10 @@ (make-exception-with-message final-message) decoding-error)))) (lambda () - (set! id-token (id:id-token-decode id-token #:http-get http-get)))) + (set! id-token + (id:id-token-decode id-token + #:http-get + (http-request->http-get http-request))))) ;; We are not interested in the ID token ;; signature anymore, because it won’t be ;; transmitted to other parties and we know that diff --git a/src/scm/webid-oidc/program.scm b/src/scm/webid-oidc/program.scm index 2b80bef..6af3665 100644 --- a/src/scm/webid-oidc/program.scm +++ b/src/scm/webid-oidc/program.scm @@ -37,6 +37,7 @@ #:use-module (ice-9 threads) #:use-module (ice-9 futures) #:use-module (ice-9 textual-ports) + #:use-module (ice-9 exceptions) #:use-module (srfi srfi-19) #:use-module (rnrs bytevectors) #:use-module (web uri) |