Subversion Repositories Applications.annuaire

Compare Revisions

Ignore whitespace Rev 553 → Rev 554

/branches/v1.4-baleine/jrest/services/Auth.php
78,7 → 78,7
$uri . "rafraichir",
$uri . "refresh"
),
"description" => "confirme l'authentification et la session; rafraîchit le jeton fourni (dans le cookie " . $this->nomCookie . " ou en paramètre)"
"description" => "confirme l'authentification et la session; rafraîchit le jeton fourni (dans le cookie " . $this->nomCookie . ", le header Authorization ou en paramètre)"
),
'verifierjeton' => array(
"uri" => $uri . "verifierjeton",
86,7 → 86,7
"token" => "jeton JWT",
),
"alias" => $uri . "verifytoken",
"description" => "retourne true si le jeton fourni en paramètre est valide, une erreur sinon"
"description" => "retourne true si le jeton fourni en paramètre ou dans le header Authorization est valide, une erreur sinon"
)
)
);
241,11 → 241,11
* header HTTP "Authorization" ou jeton valide); renvoie une erreur si le cookie
* et/ou le jeton sont expirés;
* cela permet en théorie de forger des cookies avec des jetons expirés pour se les
* faire rafraîchir franduleusement, mais le canal HTTPS fait qu'un client ne peut
* faire rafraîchir frauduleusement, mais le canal HTTPS fait qu'un client ne peut
* être en possession que de ses propres jetons... au pire on peut se faire prolonger
* à l'infini même si on n'est plus inscrit à l'annuaire... @TODO faire mieux un jour
* Priorité : cookie > headers > paramètre "token" @TODO vérifier cette stratégie, l'inverse
* est peut-être plus malin
* Priorité : cookie > header "Authorization" > paramètre "token" @TODO vérifier cette
* stratégie, l'inverse est peut-être plus malin
*/
protected function identite() {
$cookieAvecJetonValide = false;
304,15 → 304,16
 
/**
* Vérifie si un jeton est valide; retourne true si oui, une erreur avec
* des détails si non
* des détails si non;
* Priorité : header "Authorization" > paramètre "token"
*/
protected function verifierJeton() {
// vérifie que le jeton provient bien d'ici,
// et qu'il est encore valide (date)
$jwt = $this->getParam('token');
if ($jwt == '') {
$jwt = $this->lireJetonDansHeader();
if ($jwt == null) {
$jwt = $this->lireJetonDansHeader();
if ($jwt == null) {
$jwt = $this->getParam('token');
if ($jwt == '') {
$this->erreur("parameter <token> or Authorization header required");
}
}
323,7 → 324,6
$this->erreur($e->getMessage());
exit;
}
//print_r($jeton);
$this->envoyerJson(true);
}