Fix su gestione access token negli interceptor

This commit is contained in:
Giuseppe Scorrano 2025-02-19 10:09:10 +01:00
parent 526bc11626
commit f85f5d63a6
2 changed files with 11 additions and 21 deletions

View File

@ -2,14 +2,10 @@ package it.integry.integrywmsnative.core.rest;
import androidx.annotation.NonNull;
import org.greenrobot.eventbus.EventBus;
import java.io.IOException;
import io.jsonwebtoken.Claims;
import it.integry.integrywmsnative.core.authentication.JwtUtils;
import it.integry.integrywmsnative.core.event.SessionExpiredEvent;
import it.integry.integrywmsnative.core.exception.UnauthorizedAccessException;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.gest.login.rest.RefreshRESTConsumer;
@ -49,10 +45,8 @@ public class AuthInterceptor implements Interceptor {
.setRefreshTokenExpiryDate(response.getExpiryDate());
SettingsManager.update();
} catch (UnauthorizedAccessException uae) {
//Globally managed
} catch (Exception e) {
throw new RuntimeException(e);
return chain.proceed(originalRequest);
}
@ -69,9 +63,4 @@ public class AuthInterceptor implements Interceptor {
}
private void notifySessionExpired() {
EventBus.getDefault().post(new SessionExpiredEvent());
}
}

View File

@ -21,13 +21,6 @@ public class HttpInterceptor implements Interceptor {
final String PROFILE_DB = SettingsManager.i().getUserSession() == null ? null : SettingsManager.i().getUserSession().getProfileDB();
final String APP_TOKEN = "fa3a21af-606b-4129-a22b-aedc2a52c7b6";
String accessToken = null;
if(SettingsManager.i().getUserSession().getAccessTokenExpiryDate() != null &&
UtilityDate.getNowTime().isBefore(SettingsManager.i().getUserSession().getAccessTokenExpiryDate())) {
accessToken = SettingsManager.i().getUserSession().getAccessToken();
}
final Request request = chain.request();
final HttpUrl url = request.url().newBuilder()
.addQueryParameter("profileDb", PROFILE_DB)
@ -38,9 +31,17 @@ public class HttpInterceptor implements Interceptor {
.addHeader("Accept", "*/*")
.addHeader("x-app-token", APP_TOKEN);
String accessToken = null;
//Nel caso in cui il token è scaduto e devo richiamare la refresh non bisogna passare il vecchio token
if(SettingsManager.i().getUserSession().getAccessTokenExpiryDate() != null &&
UtilityDate.getNowTime().isBefore(SettingsManager.i().getUserSession().getAccessTokenExpiryDate())) {
accessToken = SettingsManager.i().getUserSession().getAccessToken();
}
if(accessToken != null)
builder
.addHeader("Authorization", "Bearer " + accessToken);
builder.header("Authorization", "Bearer " + accessToken);
var newRequest = builder
.url(url)