Subversion Repositories Applications.framework

Compare Revisions

No changes between revisions

Ignore whitespace Rev 496 → Rev 495

/trunk/framework/RestClient.php
18,19 → 18,7
protected $parametres = null;
private $url = null;
private $reponse_entetes = null;
private $tracer_ip_source = null;
private $requete_headers = array();
public function __construct() {
//verifie si paramètre tracer_ip_source est sur TRUE dans config.ini
if (Config::existe('tracer_ip_source')) {
//lire la config
$valeur = Config::get('tracer_ip_source');
//si oui, active X-Forwarded-For
$this->setTracerIPSource($valeur);
}
//pas de else, si pas dans la config $tracer_ip_source sera NULL/FALSE
}
 
//+------------------------------------------------------------------------------------------------------+
// ACCESSEURS
 
54,11 → 42,7
public function nettoyerParametres() {
$this->parametres = null;
}
public function setTracerIPSource($valeur) {
$this->tracer_ip_source = $valeur;
}
 
//+------------------------------------------------------------------------------------------------------+
// MÉTHODES
 
90,35 → 74,28
// vraisemblablement induire des comportements différents. (test-suite needed)
$contenu = $this->envoyerCurlRequete($url, $mode, $donnees);
} else {
$contenu = $this->envoyerStreamRequete($url, $mode, $donnees);
$contenu = $this->envoyerStreamRequete($url, $mode, $donnees);
}
return $contenu;
}
 
private function envoyerStreamRequete($url, $mode, Array $donnees = array()) {
$this->url = $url;
$this->url = $url;
$contenu = false;
if (! in_array($mode, $this->http_methodes)) {
$e = "Le mode de requête '$mode' n'est pas accepté!";
trigger_error($e, E_USER_WARNING);
} else {
if ($mode == 'GET') {
if ($mode == 'GET') {
$this->traiterUrlParametres();
}
$content = http_build_query($donnees, null, self::HTTP_URL_REQUETE_SEPARATEUR);
$this->requete_headers['http'] = array();
$this->requete_headers['http']['method'] = $mode;
$this->requete_headers['http']['header'] = "Content-type: application/x-www-form-urlencoded\r\n";
if ($this->tracer_ip_source) {
// ajoute X-Forwarded-For au header
$this->requete_headers['http']['header'] .= "X-Forwarded-For: {$_SERVER['REMOTE_ADDR']}, {$_SERVER['SERVER_ADDR']}\r\n";
}
$this->requete_headers['http']['header'] .= "User-Agent: {$_SERVER['HTTP_USER_AGENT']} ApiTela/";
$this->requete_headers['http']['header'] .= Framework::getInfoAppli('nom');
$this->requete_headers['http']['header'] .= "\r\n";
$this->requete_headers['http']['content'] = $content;
$contexte = stream_context_create($this->requete_headers);
$flux = @fopen($this->url, 'r', false, $contexte);
$content = http_build_query($donnees, null, self::HTTP_URL_REQUETE_SEPARATEUR);
$contexte = stream_context_create(array(
'http' => array(
'method' => $mode,
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'content' => $content)));
$flux = @fopen($this->url, 'r', false, $contexte);
if (!$flux) {
$entetesFmt = print_r($this->analyserEntete(), true);
$e = "Echec requête '$mode' : {$this->url}\n".
/trunk/framework/config.defaut.ini
254,14 → 254,6
identification = true
 
; +------------------------------------------------------------------------------------------------------+
; Tracer l'IP réelle de l'utilisateur - acces_log
; tracer_ip_source : Indiquer ici si l'IP réelle de l'utilisateur doit être tracée, utilisation
; de l'entête X-Forwarded-For, et d'un module le gérant côté serveur.
; Pour activer, passer sur "php:TRUE".
 
tracer_ip_source = "php:FALSE"
 
; +------------------------------------------------------------------------------------------------------+
; Serveur REST
; Les paramètres ci-dessous sont à définir obligatoirement dans votre dossier de services web REST.
; serveur.baseURL : morceau de l'url pour appeler le serveur relative au domaine.
/trunk/tests/x-forwarded-for/test_x_forwarded_for_get.php
File deleted
\ No newline at end of file
/trunk/tests/x-forwarded-for/test_x_forwarded_for_post.php
File deleted
\ No newline at end of file
/trunk/tests/x-forwarded-for/test_x_forwarded_for_index.php
File deleted
/trunk/tests/x-forwarded-for/configurations/config.ini
File deleted
\ No newline at end of file