Line 1... |
Line 1... |
1 |
package org.tela_botanica.del.client.services.rest;
|
1 |
package org.tela_botanica.del.client.services.rest;
|
Line -... |
Line 2... |
- |
|
2 |
|
2 |
|
3 |
import org.tela_botanica.del.client.Del;
|
3 |
import org.tela_botanica.del.client.config.Config;
|
4 |
import org.tela_botanica.del.client.config.Config;
|
4 |
import org.tela_botanica.del.client.modeles.AuthInfo;
|
5 |
import org.tela_botanica.del.client.modeles.AuthInfo;
|
5 |
import org.tela_botanica.del.client.modeles.Utilisateur;
|
6 |
import org.tela_botanica.del.client.modeles.Utilisateur;
|
6 |
import org.tela_botanica.del.client.services.rest.async.ActiviteUtilisateurCallback;
|
7 |
import org.tela_botanica.del.client.services.rest.async.ActiviteUtilisateurCallback;
|
Line 94... |
Line 95... |
94 |
@Override
|
95 |
@Override
|
95 |
public void obtenirUtilisateur(final UtilisateurCallback callback, boolean ignorerAnnuaire) {
|
96 |
public void obtenirUtilisateur(final UtilisateurCallback callback, boolean ignorerAnnuaire) {
|
96 |
// par défaut, on appelle d'abord le service auth/identite de l'annuaire, afin de connaître
|
97 |
// par défaut, on appelle d'abord le service auth/identite de l'annuaire, afin de connaître
|
97 |
// le statut de l'utilisateur vis à vis du SSO (connecté ou non) et rafraîchir le jeton
|
98 |
// le statut de l'utilisateur vis à vis du SSO (connecté ou non) et rafraîchir le jeton
|
98 |
if (! ignorerAnnuaire) {
|
99 |
if (! ignorerAnnuaire) {
|
- |
|
100 |
// ne transmet pas le header Authorization, sans quoi l'annuaire rafraîchit le
|
- |
|
101 |
// jeton mis en cache et on ne peut pas se déconnecter depuis une autre application
|
99 |
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, authBaseUrl + "identite");
|
102 |
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, authBaseUrl + "identite", false);
|
100 |
try {
|
103 |
try {
|
101 |
rb.sendRequest(null, new AuthCallback() {
|
104 |
rb.sendRequest(null, new AuthCallback() {
|
102 |
public void surErreur(String message) {
|
105 |
public void surErreur(String message) {
|
103 |
// Même si l'annuaire n'est pas content, on va chercher un profil utilisateur "anonyme"
|
106 |
// Si l'annuaire n'est pas content (déconnecté depuis ailleurs ou jeton expiré), on va
|
- |
|
107 |
// chercher un profil utilisateur "anonyme" et on déconnecte dans l'interface
|
104 |
obtenirUtilisateurSansAnnuaire(callback);
|
108 |
gererRetourAuthInfo(new AuthInfo(), callback);
|
105 |
}
|
109 |
}
|
106 |
@Override
|
110 |
@Override
|
107 |
public void surRetour(AuthInfo objetRetour) {
|
111 |
public void surRetour(AuthInfo objetRetour) {
|
108 |
gererRetourAuthInfo(objetRetour, callback);
|
112 |
gererRetourAuthInfo(objetRetour, callback);
|
109 |
}
|
113 |
}
|
Line 146... |
Line 150... |
146 |
* périodique du jeton
|
150 |
* périodique du jeton
|
147 |
*
|
151 |
*
|
148 |
* @param objetRetour le retour de l'appel au service annuaire:auth (connexion, deconnexion ou identite)
|
152 |
* @param objetRetour le retour de l'appel au service annuaire:auth (connexion, deconnexion ou identite)
|
149 |
* @param callback
|
153 |
* @param callback
|
150 |
*/
|
154 |
*/
|
151 |
protected void gererRetourAuthInfo(AuthInfo objetRetour, UtilisateurCallback callback) {
|
155 |
protected void gererRetourAuthInfo(AuthInfo objetRetour, final UtilisateurCallback callback) {
|
152 |
// Stockage du jeton rafraîchi et de sa durée (pourrait avoir changé)
|
156 |
// Stockage du jeton rafraîchi et de sa durée (pourrait avoir changé)
|
153 |
Utilisateur.setJeton(objetRetour.token);
|
157 |
Utilisateur.setJeton(objetRetour.token);
|
154 |
Utilisateur.setDureeJeton(objetRetour.duration);
|
158 |
Utilisateur.setDureeJeton(objetRetour.duration);
|
Line 155... |
Line 159... |
155 |
|
159 |
|
Line 162... |
Line 166... |
162 |
@Override
|
166 |
@Override
|
163 |
public void run() {
|
167 |
public void run() {
|
164 |
// Appel de l'annuaire pour rafraîchir le jeton (cb nul pour l'instant)
|
168 |
// Appel de l'annuaire pour rafraîchir le jeton (cb nul pour l'instant)
|
165 |
// @TODO gérer le possible changement de profil / coordonnées de l'utilisateur
|
169 |
// @TODO gérer le possible changement de profil / coordonnées de l'utilisateur
|
166 |
// en cours de connexion
|
170 |
// en cours de connexion
|
167 |
obtenirUtilisateur(null);
|
171 |
obtenirUtilisateur(callback);
|
168 |
}
|
172 |
}
|
169 |
};
|
173 |
};
|
170 |
rafraichisseurJeton.scheduleRepeating(delaiRepetition);
|
174 |
rafraichisseurJeton.scheduleRepeating(delaiRepetition);
|
171 |
}
|
175 |
}
|
172 |
} else {
|
176 |
} else {
|