Skip to content
Extraits de code Groupes Projets
Valider db28e9e1 rédigé par Fil's avatar Fil
Parcourir les fichiers

login : ignorer (à partir de mes_options) remote_user et/ou http_auth_user

permet de fonctionner sous un .htaccess global ("extranet") ou sur des serveurs mal configurés (qui forcent 'root')
parent 31be2b7e
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -29,7 +29,7 @@ function acces_restreint_rubrique($id_rubrique) { ...@@ -29,7 +29,7 @@ function acces_restreint_rubrique($id_rubrique) {
function auth() { function auth() {
global $INSECURE, $HTTP_POST_VARS, $HTTP_GET_VARS, $HTTP_COOKIE_VARS, $REMOTE_USER, $PHP_AUTH_USER, $PHP_AUTH_PW; global $INSECURE, $HTTP_POST_VARS, $HTTP_GET_VARS, $HTTP_COOKIE_VARS, $REMOTE_USER, $PHP_AUTH_USER, $PHP_AUTH_PW;
global $auth_can_disconnect; global $auth_can_disconnect, $ignore_auth_http, $ignore_remote_user;
global $connect_id_auteur, $connect_nom, $connect_bio, $connect_email; global $connect_id_auteur, $connect_nom, $connect_bio, $connect_email;
global $connect_nom_site, $connect_url_site, $connect_login, $connect_pass; global $connect_nom_site, $connect_url_site, $connect_login, $connect_pass;
...@@ -64,7 +64,7 @@ function auth() { ...@@ -64,7 +64,7 @@ function auth() {
// //
// Peut-etre sommes-nous en auth http? // Peut-etre sommes-nous en auth http?
if ($PHP_AUTH_USER && $PHP_AUTH_PW) { if ($PHP_AUTH_USER && $PHP_AUTH_PW && !$ignore_auth_http) {
if (verifier_php_auth()) { if (verifier_php_auth()) {
$auth_login = $PHP_AUTH_USER; $auth_login = $PHP_AUTH_USER;
$auth_pass_ok = true; $auth_pass_ok = true;
...@@ -95,7 +95,7 @@ function auth() { ...@@ -95,7 +95,7 @@ function auth() {
} }
// Authentification .htaccess // Authentification .htaccess
else if ($REMOTE_USER && !$INSECURE['REMOTE_USER']) { else if ($REMOTE_USER && !$INSECURE['REMOTE_USER'] && !$ignore_remote_user) {
$auth_login = $REMOTE_USER; $auth_login = $REMOTE_USER;
$auth_pass_ok = true; $auth_pass_ok = true;
$auth_htaccess = true; $auth_htaccess = true;
......
...@@ -178,8 +178,8 @@ function zap_sessions ($id_auteur, $zap) { ...@@ -178,8 +178,8 @@ function zap_sessions ($id_auteur, $zap) {
// reconnaitre un utilisateur authentifie en php_auth // reconnaitre un utilisateur authentifie en php_auth
// //
function verifier_php_auth() { function verifier_php_auth() {
global $PHP_AUTH_USER, $PHP_AUTH_PW; global $PHP_AUTH_USER, $PHP_AUTH_PW, $ignore_auth_http;
if ($PHP_AUTH_USER && $PHP_AUTH_PW) { if ($PHP_AUTH_USER && $PHP_AUTH_PW && !$ignore_auth_http) {
$login = addslashes($PHP_AUTH_USER); $login = addslashes($PHP_AUTH_USER);
$result = spip_query("SELECT * FROM spip_auteurs WHERE login='$login'"); $result = spip_query("SELECT * FROM spip_auteurs WHERE login='$login'");
$row = spip_fetch_array($result); $row = spip_fetch_array($result);
......
...@@ -125,9 +125,15 @@ $test_i18n = false; ...@@ -125,9 +125,15 @@ $test_i18n = false;
$champs_extra = false; $champs_extra = false;
$champs_extra_proposes = false; $champs_extra_proposes = false;
// faut-il ignorer l'authentification par auth http/remote_user ?
// cela permet d'avoir un SPIP sous .htaccess (ignore_remote_user),
// mais aussi de fonctionner sur des serveurs debiles se
// bloquant sur PHP_AUTH_USER=root (ignore_auth_http)
$ignore_auth_http = false;
$ignore_remote_user = false;
// //
// *** Fin du parametrage *** // *** Fin du parametrage ***
// //
......
...@@ -65,7 +65,7 @@ function login($cible = '', $prive = 'prive', $message_login='') { ...@@ -65,7 +65,7 @@ function login($cible = '', $prive = 'prive', $message_login='') {
$echec_cookie = ($GLOBALS['spip_session'] != 'test_echec_cookie'); $echec_cookie = ($GLOBALS['spip_session'] != 'test_echec_cookie');
global $auteur_session; global $auteur_session;
global $spip_session, $PHP_AUTH_USER; global $spip_session, $PHP_AUTH_USER, $ignore_auth_http;
global $spip_admin; global $spip_admin;
global $php_module; global $php_module;
global $clean_link; global $clean_link;
...@@ -206,7 +206,7 @@ function login($cible = '', $prive = 'prive', $message_login='') { ...@@ -206,7 +206,7 @@ function login($cible = '', $prive = 'prive', $message_login='') {
// Gerer le focus // Gerer le focus
echo "<script type=\"text/javascript\"><!--\n" . $js_focus . "\n//--></script>\n"; echo "<script type=\"text/javascript\"><!--\n" . $js_focus . "\n//--></script>\n";
if ($echec_cookie == "oui" AND $php_module) { if ($echec_cookie == "oui" AND $php_module AND !$ignore_auth_http) {
echo "<form action='spip_cookie.php3' method='get'>"; echo "<form action='spip_cookie.php3' method='get'>";
echo "<fieldset>\n<p>"; echo "<fieldset>\n<p>";
echo _T('login_preferez_refuser')." \n"; echo _T('login_preferez_refuser')." \n";
......
...@@ -74,7 +74,7 @@ if (!$use_cache OR !defined("_ECRIRE_INC_META_CACHE")) { ...@@ -74,7 +74,7 @@ if (!$use_cache OR !defined("_ECRIRE_INC_META_CACHE")) {
// Authentification // Authentification
// //
if ($HTTP_COOKIE_VARS['spip_session'] OR $PHP_AUTH_USER) { if ($HTTP_COOKIE_VARS['spip_session'] OR ($PHP_AUTH_USER AND !$ignore_auth_http)) {
include_ecrire ("inc_session.php3"); include_ecrire ("inc_session.php3");
verifier_visiteur(); verifier_visiteur();
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter