LSauthMethod::HTTP : Add parameter to disable checking login/password by LDAP auth...
authorBenjamin Renard <brenard@easter-eggs.com>
Thu, 21 Jul 2016 09:24:51 +0000 (11:24 +0200)
committerBenjamin Renard <brenard@easter-eggs.com>
Thu, 21 Jul 2016 09:24:51 +0000 (11:24 +0200)
doc/conf/LSauthMethod/LSauthMethod_HTTP.docbook
public_html/conf/LSauth/config.LSauthMethod_HTTP.php [new file with mode: 0644]
public_html/includes/class/class.LSauthMethod_HTTP.php

index c71468e..a5e4c56 100644 (file)
@@ -4,15 +4,47 @@
   via les variables d'environnements définies suite à une authentification
   gérée par le serveur HTTP. En &php;, ces informations sont consultables
   via les variables <literal>$_SERVER['PHP_AUTH_USER']</literal> et
-  <literal>$_SERVER['PHP_AUTH_PW']</literal>. Cette &LSauthMethod; n'utilise
-  ici que la variable <literal>$_SERVER['PHP_AUTH_USER']</literal>. Si
-  celle-ci est présente, une recherche dans l'annuaire est effectué pour
-  trouver l'utilisateur correspondant. L'authentification réussi uniquement
-  si un et un seul utilisateur est retourné par la recherche.</para>
+  <literal>$_SERVER['PHP_AUTH_PW']</literal>. Si la variable
+  <literal>$_SERVER['PHP_AUTH_USER']</literal> est présente, une recherche
+  dans l'annuaire est effectué pour trouver l'utilisateur correspondant.
+  L'authentification réussie uniquement si un et un seul utilisateur est
+  retourné par la recherche et si une authentification auprès de l'annuaire
+  LDAP réussie à l'aide du DN de l'objet LDAP trouvé et du mot de passe issu
+  de la variable <literal>$_SERVER['PHP_AUTH_PW']</literal>.</para>
   
-  <note><simpara>La recherche est effectuée sur une égalité
+  <note><simpara>La recherche de l'utisateur est effectuée sur une égalité
   parfaite du RDN ou en utilisant le &LSformat; de fitre de recherche 
   <literal>authObjectFilter</literal> défini dans la 
   <link linkend='config-srv-ldap'>configuration du serveur LDAP</link>
   </simpara></note>
+
+  <para>Cette librairie peut être configurée en éditant le fichier de
+  configiration
+  <literal>conf/LSauth/config.LSauthMethod_HTTP.php</literal>.</para>
+
+<programlisting linenumbering="unnumbered">
+  <citetitle>Structure du fichier</citetitle>/*
+ *****************************************************
+ * Configuration of the HTTP authentification support *
+ *****************************************************
+ */
+
+// Don't check HTTP server's login/password by LDAP authentication challenge
+//define('LSAUTHMETHOD_HTTP_TRUST_WITHOUT_PASSWORD_CHALLENGE',true);
+</programlisting>
+
+<!-- Début Paramètres Configuration -->
+<variablelist>
+<title>Paramètres de configuration</title>
+
+<varlistentry>
+  <term>LSAUTHMETHOD_HTTP_TRUST_WITHOUT_PASSWORD_CHALLENGE</term>
+  <listitem>
+    <simpara>Permet de désactiver le test d'authentification auprès de
+    l'annuaire LDAP. Pour cela, cette constante doit être définie et
+    valoir <literal>True</literal>.</simpara>
+  </listitem>
+</varlistentry>
+
+</variablelist>
 </sect2>
diff --git a/public_html/conf/LSauth/config.LSauthMethod_HTTP.php b/public_html/conf/LSauth/config.LSauthMethod_HTTP.php
new file mode 100644 (file)
index 0000000..8166b1c
--- /dev/null
@@ -0,0 +1,30 @@
+<?php
+/*******************************************************************************
+ * Copyright (C) 2007 Easter-eggs
+ * http://ldapsaisie.labs.libre-entreprise.org
+ *
+ * Author: See AUTHORS file in top-level directory.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License version 2
+ * as published by the Free Software Foundation.
+ *
+ * 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+
+******************************************************************************/
+
+/*
+ ***********************************************************
+ * Configuration of the HTTP authentification support *
+ ***********************************************************
+ */
+
+// Don't check HTTP server's login/password by LDAP authentication challenge
+//define('LSAUTHMETHOD_HTTP_TRUST_WITHOUT_PASSWORD_CHALLENGE',true);
index 9ef30c1..5f0be44 100644 (file)
@@ -53,6 +53,19 @@ class LSauthMethod_HTTP extends LSauthMethod_basic {
     return;
   }
 
-}
+  /**
+   * Check authentication
+   *
+   * @retval LSldapObject|false The LSldapObject of the user authificated or false
+   */
+  public function authenticate() {
+    if ( (defined('LSAUTHMETHOD_HTTP_TRUST_WITHOUT_PASSWORD_CHALLENGE')) && (constant('LSAUTHMETHOD_HTTP_TRUST_WITHOUT_PASSWORD_CHALLENGE') === True)) {
+      // Return authObject without checking login/password by LDAP auth challenge
+      return LSauthMethod :: authenticate();
+    }
+    else {
+      return parent :: authenticate();
+    }
+  }
 
-?>
+}