Subversion Repositories Applications.papyrus

Rev

Rev 2155 | Rev 2157 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2155 Rev 2156
Line 45... Line 45...
45
		}
45
		}
46
		return $arrHttpHeaders;
46
		return $arrHttpHeaders;
47
	}
47
	}
48
}
48
}
Line -... Line 49...
-
 
49
 
-
 
50
// Attention bien v�rifier la pr�sence des variables suivantes :
-
 
51
// IDEN_UTILISE_SSO, IDEN_URL_SSO, IDEN_COOKIE_SSO, IDEN_SSO_SYNC
49
 
52
// dans le fichier iden_config.inc.php
-
 
53
class identificationSso {
-
 
54
	/**
-
 
55
	 * si la valeur est vraiment vide, le cookie n'est pas posé, alors on met
-
 
56
	 * une valeur vide pas vide :)
-
 
57
	 */
-
 
58
	public static $VALEUR_JETON_VIDE = "jeton-vide";
-
 
59
 
-
 
60
	protected $cookie_mandataire = "";
-
 
61
	/** le cookie qui dure jusqu'à Vladivostok, si synchro partielle seulement */
-
 
62
	protected $duree_cookie_mandataire = (3600 * 24 * 365);
-
 
63
 
-
 
64
	/**
-
 
65
	 * lorsqu'appelé par un client non-navigateur (qui n'envoie et ne reçoit pas
-
 
66
	 * de cookies), permet de ne pas rediriger en boucle, en fournissant le
-
 
67
	 * paramètre GET "non_interactif"
-
 
68
	 */
-
 
69
	protected $mode_non_interactif = false;
-
 
70
 
-
 
71
	/** voir IDEN_SSO_SYNC dans iden_config.inc.php  */
-
 
72
	protected $synchro_complete;
-
 
73
 
-
 
74
	protected $annuaire_url = '';
-
 
75
	protected $bdd_annuaire = '';
-
 
76
	protected $table_annuaire = '';
-
 
77
	protected $champ_login = '';
Line 50... Line -...
50
class identificationSso {
-
 
51
	
-
 
52
	// Attention bien v�rifier la pr�sence des variables suivantes :
-
 
53
	// IDEN_UTILISE_SSO, IDEN_URL_SSO, IDEN_HEADER_SSO, IDEN_COOKIE_SSO
-
 
54
	// dans le fichier iden_config.inc.php
-
 
55
	private $cookie_tentative_identification = "";
-
 
56
	/** Une tentative par minute pour s'identifier suffit largement */
-
 
57
	private $delai_tentative_identification = 60;
-
 
58
	
-
 
59
	private $auth_header = 'Authorization';
-
 
60
	
-
 
61
	private $annuaire_url = '';
-
 
62
	
-
 
63
	private $bdd_annuaire = '';
-
 
64
	private $table_annuaire = '';
-
 
65
	private $champ_login = '';
-
 
66
	private $champ_mdp = '';
78
	protected $champ_mdp = '';
Line 67... Line 79...
67
	
79
	
68
	private $communs_papyrus = null;
80
	protected $communs_papyrus = null;
Line 69... Line 81...
69
 
81
 
70
	public function __construct() {
82
	public function __construct() {
71
		$this->communs_papyrus = $GLOBALS['_GEN_commun'];
83
		$this->communs_papyrus = $GLOBALS['_GEN_commun'];
-
 
84
		
-
 
85
		$this->cookie_mandataire = IDEN_COOKIE_SSO;
-
 
86
		$this->auth_header = IDEN_HEADER_SSO;	
-
 
87
		$this->annuaire_url = IDEN_URL_SSO;
-
 
88
		$this->synchro_complete = IDEN_SSO_SYNC;
-
 
89
 
-
 
90
		// gestion des clients qui ne gèrent pas les cookies (file_get_contents...)
-
 
91
		if (isset($_GET['non_interactif'])) {
-
 
92
			$this->mode_non_interactif = true;
-
 
93
		}
-
 
94
 
-
 
95
		// si on est en mode synchro complète, on vérifie périodiquement l'état
Line 72... Line 96...
72
		
96
		// du SSO, en utilisant un cookie qui ne dure pas jusqu'à Vladivostok
73
		$this->cookie_tentative_identification = IDEN_COOKIE_SSO;
97
		if ($this->synchro_complete === true) {
74
		$this->auth_header = IDEN_HEADER_SSO;	
98
			$this->duree_cookie_mandataire = 60; // une fois par minute (ça ou autre chose)
75
		$this->annuaire_url = IDEN_URL_SSO;
99
		}
Line 83... Line 107...
83
		$this->table_annuaire = $this->communs_papyrus['info_auth_bdd']->gsab_nom_table;
107
		$this->table_annuaire = $this->communs_papyrus['info_auth_bdd']->gsab_nom_table;
84
		$this->champ_login = $this->communs_papyrus['info_auth_bdd']->gsab_nom_champ_login;
108
		$this->champ_login = $this->communs_papyrus['info_auth_bdd']->gsab_nom_champ_login;
85
		$this->champ_mdp = $this->communs_papyrus['info_auth_bdd']->gsab_nom_champ_mdp;
109
		$this->champ_mdp = $this->communs_papyrus['info_auth_bdd']->gsab_nom_champ_mdp;
86
	}
110
	}
Line 87... Line -...
87
 
-
 
88
	function getToken() {
-
 
89
		// Premier essai, dans le header
-
 
90
		$headers = @apache_request_headers();
-
 
91
		$token = !empty($headers['Authorization']) ? $headers['Authorization'] : null;
-
 
92
		// Eventuellement, le jeton a pu �tre pass� dans un header non standard, comme dans 
-
 
93
		// le cas o� le header Authorization est supprim� par le mod cgi d'apache
-
 
94
		// Dans ce cas l� on v�rifie aussi dans un header alternatif si celui ci a �t� renseign�
-
 
95
		if($token == null && $this->auth_header != 'Authorization') {
-
 
96
			$token = !empty($headers[$this->auth_header]) ? $headers[$this->auth_header] : null;
-
 
97
		}
-
 
98
 
-
 
99
		// Sinon dans $_REQUEST ?
-
 
100
		if($token == null) {
-
 
101
			$token = !empty($_REQUEST['Authorization']) ? $_REQUEST['Authorization'] : null;
-
 
102
		}
-
 
103
		
-
 
104
		// Sinon dans $_COOKIE ?
-
 
105
		if($token == null) {
-
 
106
			$token = !empty($_COOKIE['tb_auth']) ? $_COOKIE['tb_auth'] : null;
-
 
107
		}
-
 
108
 
-
 
109
		return $token;
-
 
110
	}
-
 
111
 
-
 
112
	public function decoderToken($token) {
-
 
113
		$token_parts = explode('.', $token);
-
 
114
		return json_decode(base64_decode($token_parts[1]), true);
-
 
115
	}
-
 
116
 
111
 
117
	// http://stackoverflow.com/questions/1251582/beautiful-way-to-remove-get-variables-with-php?lq=1
112
	// http://stackoverflow.com/questions/1251582/beautiful-way-to-remove-get-variables-with-php?lq=1
118
	function supprimerUrlVar($url, $var) {
113
	protected function supprimerUrlVar($url, $var) {
119
		 return rtrim(preg_replace('/([?&])'.$var.'=[^&]+(&|$)/','$1',$url), '&?');
114
		 return rtrim(preg_replace('/([?&])'.$var.'=[^&]*(&|$)/','$1',$url), '&?');
120
	}
115
	}
-
 
116
 
-
 
117
	/**
-
 
118
	 * Se connecte au SSO : redirige vers le service d'authentification, qui pose
-
 
119
	 * le cookie tb_auth, puis re-redirige vers Papyrus avec le jeton en GET, puis
-
 
120
	 * Papyrus stocke ce jeton dans son cookie mandataire, puis se re-redirige
-
 
121
	 * vers lui-même pour éliminer le paramètre GET de l'URL (ouf !)
121
	
122
	 */
-
 
123
	public function connecterEtRediriger() {
-
 
124
		//echo "JE CONNECTE<br/>";
122
	function connecterEtRediriger() {
125
		// sauvegarde de l'URL courante
123
		$url_redirect = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
126
		$url_redirect = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
124
		$params = 'login='.$_POST['username'].'&password='.$_POST['password'].'&redirect_url='.urlencode($url_redirect);
127
		$params = 'login='.$_POST['username'].'&password='.$_POST['password'].'&redirect_url='.urlencode($url_redirect);
125
		$connexion_url = $this->annuaire_url."connexion?".$params;
-
 
-
 
128
		$connexion_url = $this->annuaire_url."connexion?".$params;
-
 
129
		// redirection vers l'annuaire, qui va nous connecter au SSO et nous
126
		
130
		// renvoyer un jeton en GET
127
		header('Location: '.$connexion_url);
131
		header('Location: '.$connexion_url);
128
		exit;
132
		exit;
129
	}
133
	}
-
 
134
 
-
 
135
	/**
-
 
136
	 * Se déconnecte du SSO : redirige vers le service d'authentification, qui
-
 
137
	 * supprime le cookie tb_auth, puis re-redirige vers Papyrus avec un jeton
-
 
138
	 * vide en GET; Papyrus stocke ce jeton vide dans son cookie mandataire,
-
 
139
	 * puis se re-redirige vers lui-même pour éliminer le paramètre GET de l'URL
130
	
140
	 */
-
 
141
	public function deconnecterEtRediriger() {
-
 
142
		//echo "JE DECONNECTE<br/>";
131
	function deconnecterEtRediriger() {
143
		// sauvegarde de l'URL courante
132
		$url_redirect = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
144
		$url_redirect = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
133
		$url_redirect = $this->supprimerUrlVar($url_redirect, 'logout');
-
 
134
		
145
		$url_redirect = $this->supprimerUrlVar($url_redirect, 'logout');
135
		$deconnexion_url = $this->annuaire_url."deconnexion?".'redirect_url='.urlencode($url_redirect);
-
 
-
 
146
		$deconnexion_url = $this->annuaire_url."deconnexion?".'redirect_url='.urlencode($url_redirect);
-
 
147
		// redirection vers l'annuaire, qui va nous déconnecter du SSO et nous
136
		
148
		// renvoyer un jeton vide en GET
137
		header('Location: '.$deconnexion_url);
149
		header('Location: '.$deconnexion_url);
138
		exit;
150
		exit;
Line -... Line 151...
-
 
151
	}
-
 
152
	
-
 
153
	protected function synchroniserDepuisEtatSso() {
-
 
154
		//echo "JE SYNCHRONISE<br/>";
-
 
155
		// sauvegarde de l'URL courante
-
 
156
		$url_redirect = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
-
 
157
		$params = 'redirect_url='.urlencode($url_redirect);
-
 
158
		$identite_url = $this->annuaire_url."identite?".$params;
-
 
159
		// redirection vers l'annuaire, qui va nous donner l'état du SSO et nous
-
 
160
		// renvoyer un jeton en GET
-
 
161
		header('Location: '.$identite_url);
-
 
162
		exit;
-
 
163
	}
-
 
164
 
-
 
165
	/**
139
	}
166
	 * Appelée à chaque chargement de page
140
	
167
	 */
141
	function verifierIdentiteEtRediriger() {
168
	public function verifierIdentiteEtRediriger() {
142
		// si on fait autre chose qu'un GET, on ne vérifie pas l'identité, car
169
		// si on fait autre chose qu'un GET, on ne vérifie pas l'identité, car
143
		// cela conduirait à une redirection en GET (avec le jeton), qui
170
		// cela conduirait à une redirection en GET (avec le jeton), qui
144
		// supprimerait les données du corps de la requête
-
 
145
		if ($_SERVER['REQUEST_METHOD'] == "GET") {
-
 
146
			if(empty($_COOKIE['sso_tentative_identification'])) {
-
 
Line 147... Line 171...
147
 
171
		// supprimerait les données du corps de la requête
-
 
172
		if ($_SERVER['REQUEST_METHOD'] == "GET") {
148
				if($this->communs_papyrus['pear_auth']->getAuth()) {
173
 
149
 
174
			// lecture jeton en GET si on vient de l'annuaire
150
					$cookie_persistant_nom = session_name().'-memo';
175
			if (isset($_GET['Authorization'])) {
151
					$cookie_utilisateur_nom = session_name().'-utilisateur';
176
				//echo "Re-Redirection pour éliminer le GET<br/>";
152
 
-
 
153
					// Si l'utilisateur est d�j� connect� par pear
177
 
154
					// on fait tout de m�me une op�ration de logout
-
 
155
					// pour coordonner la d�connection depuis une autre application
-
 
156
					$this->communs_papyrus['pear_auth']->logout();
-
 
157
					// Destruction du cookie de session de Papyrus : est ce utile?
178
				// création / mise à jour du cookie mandataire (le jeton peut être
158
					setcookie(session_name(), session_id(), time()-3600, '/');
179
				// vide en cas de déconnexion)
159
					// Destruction du cookie de permanence de l'identitification de Papyrus
180
				$jetonRecu = $_GET['Authorization'];
-
 
181
				if ($jetonRecu == '') {
-
 
182
					$jetonRecu = self::$VALEUR_JETON_VIDE;
-
 
183
				}
-
 
184
				$this->setCookieMandataire($jetonRecu);
Line -... Line 185...
-
 
185
				//echo "JETON REÇU: " . $_GET['Authorization'];
160
					setcookie($cookie_persistant_nom, '', time()-3600, '/');
186
				//echo "JETON POSÉ: "; var_dump($jetonRecu);
161
					setcookie($cookie_utilisateur_nom, '', time()-3600, '/');
187
				//exit;
162
				}
-
 
163
 
188
 
164
				$url_redirect = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
-
 
165
				$url = $this->annuaire_url."identite?redirect_url=".urlencode($url_redirect);
-
 
166
 
189
				// redirection pour éliminer le paramètre GET
167
				// une tentative toutes les $this->delai_tentative_identification
-
 
168
				setcookie($this->cookie_tentative_identification, 1, time() + $this->delai_tentative_identification, '/');
190
				$url_redirect = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
169
 
-
 
170
				header('Location: '.$url);
-
 
171
 
-
 
172
			} else {
-
 
173
				$jeton = $this->getToken();
-
 
174
 
-
 
175
				if($jeton != null) {
-
 
176
					// Verification du jeton aupres de l'annuaire
-
 
177
					$valide = $this->verifierToken($jeton);
-
 
178
					if ($valide === true) {
-
 
179
						$jeton_decode = $this->decoderToken($jeton);
-
 
180
 
-
 
181
						// R�cup�ration du mot de passe pour remplir les infos de l'objet PEAR Auth
-
 
182
						$requete =  'SELECT '.$this->champ_mdp.' '.
-
 
183
								'FROM '.$this->bdd_annuaire.'.'.$this->table_annuaire.' '.
-
 
184
								'WHERE '.$this->champ_login.' = "'.$jeton_decode['sub'].'" ';
191
				$url_redirect = $this->supprimerUrlVar($url_redirect, 'Authorization');
185
 
-
 
186
						// TODO: normalement �a n'est jamais le cas mais que fait t'on si l'utilisateur n'existe pas
-
 
Line 187... Line 192...
187
						// dans notre base de donn�es ? (au pire il ne sera pas connect�)
192
				//echo "URL Redirect: $url_redirect"; exit;
-
 
193
				header('Location: ' . $url_redirect);
-
 
194
				exit;
-
 
195
			}
-
 
196
 
-
 
197
			// une fois qu'on a fait une connexion ou une déconnexion, on se base
188
 
198
			// sur le cookie mandataire pour gérer l'identité dans Papyrus
-
 
199
			//var_dump($_COOKIE); echo "<br/>";
-
 
200
			// lecture cookie mandataire de Papyrus
-
 
201
			$jeton = null;
-
 
202
			$cookiePresent = false;
-
 
203
			if (isset($_COOKIE[$this->cookie_mandataire])) {
-
 
204
				$cookiePresent = true;
-
 
205
				$jeton = $_COOKIE[$this->cookie_mandataire];
-
 
206
			}
-
 
207
			//echo "Cookie Présent: "; var_dump($cookiePresent);
-
 
208
			//echo "JETON: "; var_dump($jeton); echo "<br/>";
-
 
209
			//exit;
-
 
210
 
-
 
211
			// s'il y a un cookie, qu'il contienne un jeton valide ou vide
-
 
212
			if ($cookiePresent) {
-
 
213
				// s'il contient un jeton non-vide
-
 
214
				if ($jeton != self::$VALEUR_JETON_VIDE) {
-
 
215
					// reconnexion PEAR (l'utilisateur peut avoir changé)
-
 
216
					//echo "RECONNEXION!<br/>"; exit;
-
 
217
					$this->deconnexionPear();
-
 
218
					$this->connexionPear($jeton);
189
						$this->communs_papyrus['pear_auth']->username = $jeton_decode['sub'];
219
 
-
 
220
					// prolonge le cookie de 30 secondes si on est connecté, pour
-
 
221
					// minimiser les synchros avec le SSO
-
 
222
					$this->setCookieMandataire($jeton, 30);
-
 
223
 
-
 
224
					// si mode synchro partielle, le cookie mandataire dure logntemps,
-
 
225
					// on rafraîchit donc le jeton pour... euh... on sait jamais :-/
-
 
226
					if (! $this->synchro_complete) {
-
 
227
						// appel annuaire / identité avec jeton en GET
-
 
228
						$infosJson = $this->rafraichirJeton($jeton);
190
						$this->communs_papyrus['pear_auth']->password = $this->communs_papyrus['pear_db']->getOne($requete);
229
						$infos = json_decode($infosJson, true);
-
 
230
						//echo "INFOS: "; var_dump($infos); echo "<br/>";
-
 
231
						$jetonRafraichi = null;
-
 
232
						if (isset($infos['token'])) {
-
 
233
							$jetonRafraichi = $infos['token'];
-
 
234
						}
-
 
235
						//echo "JETON Rafraîchi: "; var_dump($jetonRafraichi); echo "<br/>";
-
 
236
						//exit;
-
 
237
						// si jeton rafraîchi reçu
-
 
238
						if ($jetonRafraichi != null) {
-
 
239
							// màj cookie avec jeton rafraîchi
-
 
240
							$this->setCookieMandataire($jetonRafraichi);
191
 
241
							// reconnexion PEAR (l'utilisateur peut avoir changé)
-
 
242
							$this->deconnexionPear();
192
						// Le mot de passe est d�j� crypt� dans la bdd donc il faut indiquer � pear de ne pas le re crytper
243
							$this->connexionPear($jetonRafraichi);
-
 
244
							//exit;
-
 
245
						} else {
193
						if (isset($this->communs_papyrus['pear_auth']->storage_options)) {
246
						// sinon (non connecté ou problème annuaire / jeton)
194
							$this->communs_papyrus['pear_auth']->storage_options['cryptType'] = 'none';
247
							// écriture cookie avec jeton vide
-
 
248
							$this->setCookieMandataire(self::$VALEUR_JETON_VIDE);
-
 
249
							// déconnexion PEAR
-
 
250
							$this->deconnexionPear();
-
 
251
						}
-
 
252
					}
-
 
253
				} else {
-
 
254
					// déconnexion PEAR ?
-
 
255
					$this->deconnexionPear();	
-
 
256
				}
-
 
257
			} else { // sinon (aucun cookie mandataire)
195
						}
258
				// en mode synchro complète, on vérifie chaque minute (lorsque le
196
						if (isset($this->communs_papyrus['pear_auth']->storage->options)) {
259
				// cookie mandataire n'est plus présent) si on n'est pas connecté
197
							$this->communs_papyrus['pear_auth']->storage->options['cryptType'] = 'none';
260
				// sur le SSO, sauf si on est en mode non interactif
198
						}
261
				if ($this->synchro_complete && (! $this->mode_non_interactif)) {
Line -... Line 262...
-
 
262
					$this->synchroniserDepuisEtatSso();
-
 
263
				}
-
 
264
			}
-
 
265
		}
-
 
266
	}
-
 
267
 
-
 
268
	protected function setCookieMandataire($valeur, $duree=null) {
199
					}
269
		if ($duree === null) {
200
				}
270
			$duree = $this->duree_cookie_mandataire;
201
			}
271
		}
202
		}
272
		setcookie($this->cookie_mandataire, $valeur, time() + $duree);
203
	}
273
	}
-
 
274
 
-
 
275
	/**
204
 
276
	 * Connecte l'utilisateur à Papyrus avec le système traditionnel fourni par PEAR
-
 
277
	 */
-
 
278
	protected function connexionPear($jeton) {
-
 
279
		$jeton_decode = $this->decoderToken($jeton);
-
 
280
 
-
 
281
		// R�cup�ration du mot de passe pour remplir les infos de l'objet PEAR Auth
-
 
282
		$requete =  'SELECT '.$this->champ_mdp.' '.
-
 
283
				'FROM '.$this->bdd_annuaire.'.'.$this->table_annuaire.' '.
-
 
284
				'WHERE '.$this->champ_login.' = "'.$jeton_decode['sub'].'" ';
-
 
285
 
-
 
286
		// TODO: normalement �a n'est jamais le cas mais que fait t'on si l'utilisateur n'existe pas
-
 
287
		// dans notre base de donn�es ? (au pire il ne sera pas connect�)
-
 
288
		$this->communs_papyrus['pear_auth']->username = $jeton_decode['sub'];
-
 
289
		$this->communs_papyrus['pear_auth']->password = $this->communs_papyrus['pear_db']->getOne($requete);
-
 
290
 
-
 
291
		// Le mot de passe est d�j� crypt� dans la bdd donc il faut indiquer � pear de ne pas le re crytper
-
 
292
		if (isset($this->communs_papyrus['pear_auth']->storage_options)) {
-
 
293
			$this->communs_papyrus['pear_auth']->storage_options['cryptType'] = 'none';
-
 
294
		}
-
 
295
		if (isset($this->communs_papyrus['pear_auth']->storage->options)) {
Line -... Line 296...
-
 
296
			$this->communs_papyrus['pear_auth']->storage->options['cryptType'] = 'none';
-
 
297
		}
205
	/**
298
 
-
 
299
		// si on fait pas ça, ça marche pas (régénération de session apparemment)
206
	 * Vérifie un jeton auprès de l'annuaire
300
		//$this->communs_papyrus['pear_auth']->setAuth($jeton_decode['sub']);
-
 
301
	}
Line -... Line 302...
-
 
302
 
-
 
303
	/**
-
 
304
	 * Supprime tout ce qui a trait à PEAR afin de déconnecter l'utilisateur du
-
 
305
	 * système d'authentification traditionnel de Papyrus
-
 
306
	 */
-
 
307
	protected function deconnexionPear() {
-
 
308
		$this->communs_papyrus['pear_auth']->logout();
-
 
309
 
-
 
310
		$cookie_persistant_nom = session_name().'-memo';
-
 
311
		$cookie_utilisateur_nom = session_name().'-utilisateur';
-
 
312
		// Destruction du cookie de session de Papyrus : est ce utile?
-
 
313
		setcookie(session_name(), session_id(), time()-3600, '/');
-
 
314
		// Destruction du cookie de permanence de l'identitification de Papyrus
-
 
315
		setcookie($cookie_persistant_nom, '', time()-3600, '/');
-
 
316
		setcookie($cookie_utilisateur_nom, '', time()-3600, '/');
-
 
317
	}
-
 
318
 
-
 
319
	/**
-
 
320
	 * Fournit un jeton à l'annuaire (jeton provenant du cookie mandataire
-
 
321
	 * de Papyrus), le fait rafraîchir puis met à jour le cookie mandataire avec
-
 
322
	 * le jeton rafraîchi
-
 
323
	 */
-
 
324
	protected function rafraichirJeton($jeton) {
-
 
325
		$identiteServiceURL = $this->annuaire_url . "identite";
-
 
326
		$identiteServiceURL .= "?token=" . $jeton;
-
 
327
		//echo "URL: $identiteServiceURL<br/>";
207
	 */
328
		$ch = curl_init($identiteServiceURL);
-
 
329
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
-
 
330
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
-
 
331
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
-
 
332
		$jetonRafraichi = curl_exec($ch);
-
 
333
		//var_dump($jetonRafraichi);
208
	protected function verifierToken($token) {
334
		//var_dump(curl_error($ch)); exit;
209
		$verificationServiceURL = $this->annuaire_url . "verifytoken";
335
 
210
		$verificationServiceURL .= "?token=" . $token;
336
		return $jetonRafraichi;
211
 
337
	}