Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 2086 → Rev 2087

/trunk/src/org/tela_botanica/del/client/services/rest/UtilisateurServiceConcret.java
1,5 → 1,6
package org.tela_botanica.del.client.services.rest;
 
import org.tela_botanica.del.client.Del;
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.modeles.AuthInfo;
import org.tela_botanica.del.client.modeles.Utilisateur;
96,12 → 97,15
// par défaut, on appelle d'abord le service auth/identite de l'annuaire, afin de connaître
// le statut de l'utilisateur vis à vis du SSO (connecté ou non) et rafraîchir le jeton
if (! ignorerAnnuaire) {
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, authBaseUrl + "identite");
// ne transmet pas le header Authorization, sans quoi l'annuaire rafraîchit le
// jeton mis en cache et on ne peut pas se déconnecter depuis une autre application
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, authBaseUrl + "identite", false);
try {
rb.sendRequest(null, new AuthCallback() {
public void surErreur(String message) {
// Même si l'annuaire n'est pas content, on va chercher un profil utilisateur "anonyme"
obtenirUtilisateurSansAnnuaire(callback);
// Si l'annuaire n'est pas content (déconnecté depuis ailleurs ou jeton expiré), on va
// chercher un profil utilisateur "anonyme" et on déconnecte dans l'interface
gererRetourAuthInfo(new AuthInfo(), callback);
}
@Override
public void surRetour(AuthInfo objetRetour) {
148,7 → 152,7
* @param objetRetour le retour de l'appel au service annuaire:auth (connexion, deconnexion ou identite)
* @param callback
*/
protected void gererRetourAuthInfo(AuthInfo objetRetour, UtilisateurCallback callback) {
protected void gererRetourAuthInfo(AuthInfo objetRetour, final UtilisateurCallback callback) {
// Stockage du jeton rafraîchi et de sa durée (pourrait avoir changé)
Utilisateur.setJeton(objetRetour.token);
Utilisateur.setDureeJeton(objetRetour.duration);
164,7 → 168,7
// Appel de l'annuaire pour rafraîchir le jeton (cb nul pour l'instant)
// @TODO gérer le possible changement de profil / coordonnées de l'utilisateur
// en cours de connexion
obtenirUtilisateur(null);
obtenirUtilisateur(callback);
}
};
rafraichisseurJeton.scheduleRepeating(delaiRepetition);
/trunk/src/org/tela_botanica/del/client/services/RequestBuilderWithCredentials.java
6,9 → 6,21
 
public class RequestBuilderWithCredentials extends RequestBuilder {
 
/**
* Envoie une requête avec les headers "Credentials" (CORS) et "Authorization" (SSO)
*/
public RequestBuilderWithCredentials(Method httpMethod, String url) {
this(httpMethod, url, true);
}
 
/**
* Envoie une requête avec un header "Credentials" pour CORS (ajax.io); si
* authorizationHeader vaut true, envoie aussi le jeton SSO (s'il existe) dans
* le header "Authorization"
*/
public RequestBuilderWithCredentials(Method httpMethod, String url, boolean authorizationHeader) {
super(httpMethod, url);
if(Utilisateur.getJeton() != null && ! Utilisateur.getJeton().isEmpty()) {
if(authorizationHeader && Utilisateur.getJeton() != null && ! Utilisateur.getJeton().isEmpty()) {
this.setHeader("Authorization", Utilisateur.getJeton());
}
this.setIncludeCredentials(true);
/trunk/src/org/tela_botanica/del/client/Del.java
61,4 → 61,10
}
return log;
}*/
 
public static native void LogVersFirebug(Object o) /*-{
if (!!($wnd.console && $wnd.console.log)) {
console.log(o);
}
}-*/;
}