From: Lucien Gentis Date: Sun, 26 Aug 2012 13:59:34 +0000 (+0000) Subject: Update. X-Git-Tag: 2.4.4~634 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bc789b48f3815f2a73a4fb97eec14de174854978;p=apache Update. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1377442 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/docs/manual/mod/mod_lua.xml.fr b/docs/manual/mod/mod_lua.xml.fr index a493a5e193..da6e804889 100644 --- a/docs/manual/mod/mod_lua.xml.fr +++ b/docs/manual/mod/mod_lua.xml.fr @@ -1,7 +1,7 @@ - + @@ -112,13 +112,12 @@ function handle(r) if r.method == 'GET' then for k, v in pairs( r:parseargs() ) do r:puts( string.format("%s: %s\n", k, v) ) - end + else r:puts("Unsupported HTTP method " .. r.method) end @@ -135,6 +134,60 @@ Cela signifie que vous pouvez (et êtes encouragé à) avoir pl gestionnaires (ou points d'entrée, ou filtres) dans le même script.

+ +
+Ecriture de fournisseurs d'autorisation + +

mod_authz_core fournit une interface d'autorisation +de haut niveau bien plus facile à utiliser que dans les hooks +correspondants. Le premier argument de la directive Require permet de spécifier le +fournisseur d'autorisation à utiliser. Pour chaque directive Require, +mod_authz_core appellera le fournisseur d'autorisation +spécifié, le reste de la ligne constituant les paramètres. Le +fournisseur considéré va alors vérifier les autorisations et fournir le +résultat dans une valeur de retour.

+ +

En général, le fournisseur authz est appelé avant l'authentification. +S'il doit connaître le nom d'utilisateur authentifié (ou si +l'utilisateur est appelé à être authentifié), le fournisseur doit +renvoyer apache2.AUTHZ_DENIED_NO_USER, ce qui va +déclancher le processus d'authentification et un deuxième appel du +fournisseur authz.

+ +

La fonction du fournisseur authz ci-dessous accepte deux arguments, +une adresse IP et un nom d'utilisateur. Elle autorise l'accès dans le +cas où la requête provient de l'adresse IP spécifiée, ou si +l'utilisateur authentifié correspond au second argument :

+ + +authz_provider.lua
+ +require 'apache2' + +function authz_check_foo(r, ip, user) + if r.useragent_ip == ip then + return apache2.AUTHZ_GRANTED + elseif r.user == nil then + return apache2.AUTHZ_DENIED_NO_USER + elseif r.user == user then + return apache2.AUTHZ_GRANTED + else + return apache2.AUTHZ_DENIED + end +end +
+ +

La configuration suivante enregistre cette fonction en tant que +fournisseur foo, et la configure por l'URL / :

+ +LuaAuthzProvider foo authz_provider.lua authz_check_foo +<Location /> + Require foo 10.1.2.3 john_doe +</Location> + +
Ecriture de fonctions d'accroche @@ -248,6 +301,16 @@ end <td>string</td> <td>oui</td> </tr> + <tr> + <td><code>context_prefix</code></td> + <td>string</td> + <td>non</td> + </tr> + <tr> + <td><code>context_document_root</code></td> + <td>string</td> + <td>non</td> + </tr> <tr> <td><code>document_root</code></td> @@ -284,6 +347,11 @@ end <td>string</td> <td>non</td> </tr> + <tr> + <td><code>log_id</code></td> + <td>string</td> + <td>non</td> + </tr> <tr> <td><code>method</code></td> <td>string</td> @@ -344,6 +412,11 @@ end <td>string</td> <td>oui</td> </tr> + <tr> + <td><code>useragent_ip</code></td> + <td>string</td> + <td>non</td> + </tr> </table> <p>La structure request_rec possède (au minimum) les méthodes @@ -354,15 +427,17 @@ end </highlight> <highlight language="lua"> - r:parseargs() -- renvoie une table lua contenant la chaîne - d'arguments de la requête + r:parseargs() -- renvoie une table lua contenant la chaîne + d'arguments de la requête </highlight> -<!-- -/* Not supported yet */ + <highlight language="lua"> - r:parsebody() ‐- parse the request body as a POST and return a lua table + r:parsebody()([sizeLimit]) -- interprète le corps de la requête + en tant que POST et renvoie une table lua. Un nombre optionnel + peut être fourni pour spécifier le nombre maximal d'octets à + interpréter. La valeur par défaut est 8192. </highlight> ---> + <highlight language="lua"> r:puts("bonjour", " le monde", "!") -- affichage dans le corps de la réponse </highlight> @@ -439,9 +514,10 @@ relatifs dans les directives de mod_lua</description> <directivesynopsis> <name>LuaScope</name> -<description>Une valeur parmi once, request, conn, server -- la valeur +<description>Une valeur parmi once, request, conn, thread -- la valeur par défaut est once</description> -<syntax>LuaScope once|request|conn|server [max|min max]</syntax> +<syntax>LuaScope once|request|conn|thread -- la valeur par défaur est +once</syntax> <default>LuaScope once</default> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context> @@ -461,17 +537,23 @@ par défaut est once</description> aussi dans la portée de la requête.</dd> <dt>conn:</dt> <dd>idem request, mais attaché à connection_rec</dd> - + <dt>thread:</dt> <dd>Utilise l'interpréteur pendant toute la durée + de vie du thread qui traite la requête (disponible seulement avec + les MPMs threadés).</dd> +<!-- not implemented <dt>server:</dt> <dd>Le comportement est ici différent, car la portée du serveur présente une durée de vie assez longue, et plusieurs threads vont partager le même server_rec. Pour gérer tout ceci, les interpréteurs sont stockés dans une liste de ressources apr. Les arguments min et max ont été prévus pour spécifier une taille de jeu, mais sont inutilisés pour le moment.</dd> +--> </dl> </usage> </directivesynopsis> +<!-- ++/* Not implemented in 2.4.x yet */ <directivesynopsis> <name>LuaMapHandler</name> <description>Met en correspondance un chemin avec un gestionnaire lua</description> @@ -507,6 +589,7 @@ par défaut est once</description> spécifié.</p> </usage> </directivesynopsis> +--> <directivesynopsis> <name>LuaPackagePath</name> @@ -546,6 +629,7 @@ LuaPackagePath /scripts/lib/?/init.lua </usage> </directivesynopsis> +<!-- Not implemented yet <directivesynopsis> <name>LuaCodeCache</name> <description>Configure le cache de code compilé.</description> @@ -580,6 +664,7 @@ LuaCodeCache never </usage> </directivesynopsis> +--> <directivesynopsis> <name>LuaHookTranslateName</name> @@ -587,7 +672,6 @@ LuaCodeCache never traduction du traitement de la requête</description> <syntax>LuaHookTranslateName /chemin/vers/lua/script.lua nom_fonction_hook [early|late]</syntax> <contextlist><context>server config</context><context>virtual host</context> -<context>directory</context> </contextlist> <override>All</override> <compatibility>Le troisième argument optionnel est disponible depuis la @@ -816,9 +900,8 @@ parentes sont fusionnées dans les enfants</description> <name>LuaQuickHandler</name> <description>Fournit un point d'entrée pour la gestion rapide du traitement de la requête</description> -<syntax></syntax> +<syntax>LuaQuickHandler /path/to/script.lua hook_function_name</syntax> <contextlist><context>server config</context><context>virtual host</context> -<context>directory</context><context>.htaccess</context> </contextlist> <override>All</override> <usage><p>...</p> @@ -829,5 +912,32 @@ traitement de la requête</description> </usage> </directivesynopsis> +<directivesynopsis> +<name>LuaAuthzProvider</name> +<description>Branche une fonction fournisseur d'autorisation dans <module>mod_authz_core</module> +</description> +<syntax>LuaAuthzProvider provider_name /path/to/lua/script.lua function_name</syntax> +<contextlist><context>server config</context> </contextlist> +<compatibility>Disponible depuis la version 2.4.3 du serveur HTTP Apache</compatibility> + +<usage> +<p>Lorsqu'une fonction lua a été enregistrée en tant que fournisseur +d'autorisation, elle peut être appelée via la directive <directive +module="mod_authz_core">Require</directive> :</p> + + +<example> +<highlight language="config"> +LuaRoot /usr/local/apache2/lua +LuaAuthzProvider foo authz.lua authz_check_foo +<Location /> + Require foo bar +</Location> +</highlight> +</example> + +</usage> +</directivesynopsis> + </modulesynopsis>