/trunk/tests/x-forwarded-for/test_x_forwarded_for_get.php |
---|
New file |
0,0 → 1,14 |
<?php |
/* |
* To change this license header, choose License Headers in Project Pro |
* To change this template file, choose Tools | Templates |
* and open the template in the editor. |
*/ |
echo "</br>coucou je réceptionne des trucs !</br>"; |
echo "</br>Méthode : " . $_SERVER['REQUEST_METHOD']; |
echo "</br>Mes entêtes : </br>"; |
echo "<pre>"; |
var_dump(apache_request_headers()); |
echo "</pre>"; |
/trunk/tests/x-forwarded-for/test_x_forwarded_for_post.php |
---|
New file |
0,0 → 1,18 |
<?php |
/* |
* To change this license header, choose License Headers in Project Pro |
* To change this template file, choose Tools | Templates |
* and open the template in the editor. |
*/ |
echo "</br>coucou j'envoie des trucs !</br>"; |
echo "</br>Méthode : " . $_SERVER['REQUEST_METHOD'] . '</br>'; |
echo "</br>La chaine postée :</br>"; |
echo "<pre>"; |
var_dump($_POST); |
echo "</pre>"; |
echo "</br>Mes entêtes : </br>"; |
echo "<pre>"; |
var_dump(apache_request_headers()); |
echo "</pre>"; |
/trunk/tests/x-forwarded-for/test_x_forwarded_for_index.php |
---|
New file |
0,0 → 1,22 |
<?php |
$mRoot = $_SERVER['DOCUMENT_ROOT']; |
require_once($mRoot . '/tbframework_trunk/framework/Framework.php'); |
//require_once($mRoot . '/tbframework_trunk/framework/RestClient.php'); |
Framework::setCheminAppli(__FILE__); // Obligatoire |
Framework::setInfoAppli(array('nom' => 'TestMonitorRestApiClient')); |
$mRestClient = new RestClient(); |
$retour = $mRestClient->consulter("http://localhost/tbframework_trunk/tests/x-forwarded-for/test_x_forwarded_for_get.php"); |
echo "</br>Retour de la page appelée par GET :</br>"; |
echo $retour; |
$donnees_post = array('var1' => 'Coucou', 'var2' => 'Beuh'); |
$retour = $mRestClient->modifier("http://localhost/tbframework_trunk/tests/x-forwarded-for/test_x_forwarded_for_post.php", $donnees_post); |
echo "</br>Retour de la page appelée par POST :</br>"; |
echo $retour; |
/trunk/tests/x-forwarded-for/configurations/config.ini |
---|
New file |
0,0 → 1,10 |
; this is an INI file |
; +------------------------------------------------------------------------------------------------------+ |
; Tracer l'IP réelle de l'utilisateur |
; tracer_ip_source : Indiquer ici si l'IP réelle de l'utilisateur doit être tracée. |
; |
tracer_ip_source = "php:TRUE" |
;debogage_contexte = true |
/trunk/framework/config.defaut.ini |
---|
254,6 → 254,14 |
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/framework/RestClient.php |
---|
18,7 → 18,19 |
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 |
43,6 → 55,10 |
$this->parametres = null; |
} |
public function setTracerIPSource($valeur) { |
$this->tracer_ip_source = $valeur; |
} |
//+------------------------------------------------------------------------------------------------------+ |
// MÉTHODES |
90,11 → 106,18 |
$this->traiterUrlParametres(); |
} |
$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))); |
$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); |
if (!$flux) { |
$entetesFmt = print_r($this->analyserEntete(), true); |