1,7 → 1,4 |
<?php |
require_once("lib/alcasar/freeradius/siteconfig.php"); |
require_once("lib/alcasar/freeradius/ldapconfig.php"); |
|
/* written by steweb57 */ |
/**************************************************************** |
* CONSTANTES AVEC CHEMINS DES FICHIERS DE CONFIGURATION * |
53,7 → 50,7 |
*****************************************************************/ |
//Création des variables nécessaires |
//variables ldap |
$ldap_on = ""; |
$ldap = ""; |
$ldap_server = ""; //IP ou nom DNS du seveur LDAP (ou AD) |
//par défaut : server = "ldap.your.domain" |
$ldap_identity = ""; //nom d'utilisateur qui intérroge le ldap (vide = anonyme) |
69,25 → 66,99 |
//par défaut : # base_filter = "(objectclass=radiusprofile)" |
|
/******************************************************** |
* Fichier ALCASAR_RADIUS_SITE * |
* Fichier ALCASAR_RADIUS_SITE * |
*********************************************************/ |
$site = new siteConfig(); |
$site->load(ALCASAR_RADIUS_SITE); |
$ldap_on = $site->authorize->ldap; |
/******************************************************** |
* Fichier ALCASAR_RADIUS_MODULE_LDAP * |
*********************************************************/ |
//variables pour le parcourt des fichiers |
//$ouvre : fichier ouvert |
//$tampon : ligne en cours |
// |
//Lecture du fichier /etc/raddb/sites-available/alcasar |
$continue = true; |
$ouvre=fopen(ALCASAR_RADIUS_SITE,"r"); |
if ($ouvre){ |
while (!feof ($ouvre)) |
{ |
$tampon = fgets($ouvre, 4096); |
if ((preg_match('`^([\s#]*ldap[\s]*)$`',$tampon))&&$continue){ |
//Récupération dans la section authorise de la ligne ldap |
//valeur : ldap = authentification ldap authorisée |
//valeur : #ldap = authentification ldap non authorisée |
//section authenticat utile ? |
//section post-auth non utilisée |
$ldap = trim($tampon); |
$continue = false;//arret de la boucle lorsque l'on trouve le premier élément "ldap" dans le fichier |
} |
} |
}else{ |
exit("Erreur d'ouverture du fichier /etc/raddb/sites-available/alcasar"); |
} |
fclose($ouvre); |
|
/**************************************************************** |
* Fichier ALCASAR_RADIUS_MODULE_LDAP * |
*****************************************************************/ |
//Lecture du fichier /etc/raddb/modules/ldap |
$ldap = new ldapConfig(); |
$ldap->load(ALCASAR_RADIUS_MODULE_LDAP); |
$ldap_server = $ldap->server; |
$ldap_identity = $ldap->identity; |
$ldap_password = $ldap->password; |
$ldap_basedn = $ldap->basedn; |
$ldap_filter = $ldap->filter; |
$ldap_base_filter = $ldap->base_filter; |
$ouvre=fopen(ALCASAR_RADIUS_MODULE_LDAP,"r"); |
if ($ouvre){ |
while (!feof ($ouvre)) |
{ |
$tampon = fgets($ouvre, 4096); |
|
if (preg_match('`^([\s#]*server(\s*)=)`',$tampon)){ |
//if (preg_match('`^((\s*)(#*)(\s*)server\b(\s*)=)`i',$tampon)){ |
//Récupération de la ligne contenant le paramettre ldap server |
$ldap_server = ltrim($tampon); |
} elseif (preg_match('`^([\s#]*identity(\s*)=)`',$tampon)){ |
//Récupération de la ligne contenant le paramettre ldap identity |
$ldap_identity = ltrim($tampon); |
} elseif (preg_match('`^([\s#]*password(\s*)=)`',$tampon)){ |
//Récupération de la ligne contenant le paramettre ldap password |
$ldap_password = ltrim($tampon); |
} elseif (preg_match('`^([\s#]*basedn(\s*)=)`',$tampon)){ |
//Récupération de la ligne contenant le paramettre ldap basedn |
$ldap_basedn = ltrim($tampon); |
} elseif (preg_match('`^([\s#]*filter(\s*)=)`',$tampon)){ |
//Récupération de la ligne contenant le paramettre ldap filter |
$ldap_filter = ltrim($tampon); |
} elseif (preg_match('`^([\s#]*base_filter(\s*)=)`',$tampon)){ |
//Récupération de la ligne contenant le paramettre ldap base_filter |
$ldap_base_filter = ltrim($tampon); |
} |
} |
}else{ |
exit("Erreur d'ouverture du fichier /etc/raddb/modules/ldap"); |
} |
fclose($ouvre); |
|
//mise en forme des parametres ldap récupérés |
//A FAIRE : test de contrôle des valeurs $tmp[O] pour être sur d'avoir les bonnes lignes du fichier de conf !!! |
|
//pas de test de la variable ldap car tester dans la comparaison du formulaire ci-dessous (si $ldap = "ldap" authentification LDAP activée, elle est désactivé). |
$tmp = explode("=",$ldap_server,2); |
$ldap_server = str_replace("\"","",$tmp[1]); //suppression des " dans la chaine |
$ldap_server = trim($ldap_server); //suppression des espaces avant et après la chaine |
|
$tmp = explode("=",$ldap_identity,2); |
$ldap_identity = str_replace("\"","",$tmp[1]); //suppression des " dans la chaine |
$ldap_identity = trim($ldap_identity); //suppression des espaces avant et après la chaine |
|
$tmp = explode("=",$ldap_password,2); |
$ldap_password = str_replace("\"","",$tmp[1]); //suppression des " dans la chaine |
$ldap_password = trim($ldap_password); //suppression des espaces avant et après la chaine |
|
$tmp = explode("=",$ldap_basedn,2); |
$ldap_basedn = str_replace("\"","",$tmp[1]); //suppression des " dans la chaine |
$ldap_basedn = trim($ldap_basedn); //suppression des espaces avant et après la chaine |
|
$tmp = explode("=",$ldap_filter,3); |
$ldap_filter = str_replace("\"","",$tmp[1]); //suppression des " dans la chaine |
$ldap_filter = trim($ldap_filter); //suppression des espaces avant et après la chaine |
$ldap_filter = str_replace("(","",$ldap_filter);//suppression du ( dans la chaine |
|
$tmp = explode("=",$ldap_base_filter,2); |
$ldap_base_filter = str_replace("\"","",$tmp[1]); //suppression des " dans la chaine |
$ldap_base_filter = trim($ldap_base_filter); //suppression des espaces avant et après la chaine |
|
# Choice of language |
$Language = 'en'; |
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ |
219,7 → 290,7 |
} else { |
$new_ldap_server = $ldap_server; |
} |
if (($ldap_on == "ldap") && (function_exists('ldap_connect'))){ |
if (($ldap == "ldap") && (function_exists('ldap_connect'))){ |
echo "<div align='center'><br>"; |
switch(ldap_test($new_ldap_server, $ldap_identity, $ldap_password)){ |
case -2: |