X-Git-Url: https://granicus.if.org/sourcecode?a=blobdiff_plain;f=docs%2Fmanual%2Fmod%2Fmod_lua.xml.fr;h=4422cfa2d9ab499a8ddead130e8c5f91c7cc10a4;hb=c32773be6d1ea93c38ee69be677cbce1d581f56c;hp=7f5a50970ec4b0e36d7b3988bcd1cf91472856a0;hpb=1a175ccdf994433e446b3d6462d90b8e0a32db00;p=apache diff --git a/docs/manual/mod/mod_lua.xml.fr b/docs/manual/mod/mod_lua.xml.fr index 7f5a50970e..4422cfa2d9 100644 --- a/docs/manual/mod/mod_lua.xml.fr +++ b/docs/manual/mod/mod_lua.xml.fr @@ -1,7 +1,7 @@ - + @@ -95,7 +95,7 @@ le style de CGI. Une fonction de gestionnaire se présente comme suit :

-example.lua +example.lua
-- exemple de gestionnaire require "string" @@ -112,13 +112,11 @@ 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 +133,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 @@ -155,8 +207,9 @@ code d'état HTTP ou des valeurs OK, DONE, ou DECLINED, que vous pouvez écrire dans lua sous la forme <code>apache2.OK</code>, <code>apache2.DONE</code>, ou <code>apache2.DECLINED</code>.</p> + <highlight language="lua"> -<strong>translate_name.lua</strong> +<strong>translate_name.lua</strong><br/> -- exemple d'accroche qui réécrit un URI en chemin du système de fichiers. @@ -172,8 +225,9 @@ function translate_name(r) end </highlight> + <highlight language="lua"> -<strong>translate_name2.lua</strong> +<strong>translate_name2.lua</strong><br/> --[[ exemple d'accroche qui réécrit un URI vers un autre URI. Il renvoie un apache2.DECLINED pour permettre à un autre interpréteur d'URL de travailler sur la substitution, y compris l'accroche translate_name @@ -249,6 +303,17 @@ end <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> <td>string</td> @@ -284,6 +349,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 +414,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 +429,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() -- interprète toutes données POST de la requête et + les renvoie sous forme de table Lua </highlight> ---> + + <highlight language="lua"> r:puts("bonjour", " le monde", "!") -- affichage dans le corps de la réponse </highlight> @@ -829,5 +906,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.5.0 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>