diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/AuthInterceptor.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/AuthInterceptor.java index b4bc2593..a6878bce 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/AuthInterceptor.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/AuthInterceptor.java @@ -24,35 +24,40 @@ public class AuthInterceptor implements Interceptor { @Override public Response intercept(@NonNull Chain chain) throws IOException { var originalRequest = chain.request(); - var accessToken = SettingsManager.i().getUserSession().getAccessToken(); - var accessTokenExpiryDate = SettingsManager.i().getUserSession().getAccessTokenExpiryDate(); - if(accessToken != null && (accessTokenExpiryDate == null || UtilityDate.getNowTime().isAfter(accessTokenExpiryDate))) { + if(SettingsManager.i().getUserSession() != null) { - // Make the token refresh request - try { - var response = refreshRESTConsumer.makeSynchronousRefreshTokenRequest(); + var accessToken = SettingsManager.i().getUserSession().getAccessToken(); + var accessTokenExpiryDate = SettingsManager.i().getUserSession().getAccessTokenExpiryDate(); - JWT jwt = new JWT(response.getAccessToken()); + if (accessToken != null && (accessTokenExpiryDate == null || UtilityDate.getNowTime().isAfter(accessTokenExpiryDate))) { - SettingsManager.i().getUserSession() - .setAccessToken(response.getAccessToken()) - .setAccessTokenExpiryDate(UtilityDate.toLocalDateTime(jwt.getExpiresAt())) - .setRefreshToken(response.getRefreshToken()) - .setRefreshTokenExpiryDate(response.getExpiryDate()); + // Make the token refresh request + try { + var response = refreshRESTConsumer.makeSynchronousRefreshTokenRequest(); - SettingsManager.update(); - } catch (Exception e) { - throw new RuntimeException(e); - } + JWT jwt = new JWT(response.getAccessToken()); + + SettingsManager.i().getUserSession() + .setAccessToken(response.getAccessToken()) + .setAccessTokenExpiryDate(UtilityDate.toLocalDateTime(jwt.getExpiresAt())) + .setRefreshToken(response.getRefreshToken()) + .setRefreshTokenExpiryDate(response.getExpiryDate()); + + SettingsManager.update(); + } catch (Exception e) { + throw new RuntimeException(e); + } - // Add the access token to the request header - var authorizedRequest = originalRequest.newBuilder() - .header("Authorization", "Bearer " + SettingsManager.i().getUserSession().getAccessToken()) - .build(); + // Add the access token to the request header + var authorizedRequest = originalRequest.newBuilder() + .header("Authorization", "Bearer " + SettingsManager.i().getUserSession().getAccessToken()) + .build(); - return chain.proceed(authorizedRequest); + return chain.proceed(authorizedRequest); + } else + return chain.proceed(originalRequest); } else return chain.proceed(originalRequest); }