Migliorata gestione status code nel caso di UnauthorizedAccess nell'interceptor
This commit is contained in:
parent
521e2fe62b
commit
fa10973626
@ -6,11 +6,14 @@ import java.io.IOException;
|
||||
|
||||
import io.jsonwebtoken.Claims;
|
||||
import it.integry.integrywmsnative.core.authentication.JwtUtils;
|
||||
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;
|
||||
import okhttp3.Interceptor;
|
||||
import okhttp3.Protocol;
|
||||
import okhttp3.Response;
|
||||
import okhttp3.ResponseBody;
|
||||
|
||||
public class AuthInterceptor implements Interceptor {
|
||||
|
||||
@ -30,7 +33,7 @@ public class AuthInterceptor implements Interceptor {
|
||||
var accessToken = SettingsManager.i().getUserSession().getAccessToken();
|
||||
var accessTokenExpiryDate = SettingsManager.i().getUserSession().getAccessTokenExpiryDate();
|
||||
|
||||
if (accessToken != null && (accessTokenExpiryDate == null || UtilityDate.getNowTime().isAfter(accessTokenExpiryDate))) {
|
||||
if (accessToken != null && (accessTokenExpiryDate == null || UtilityDate.getNowTime().isAfter(accessTokenExpiryDate.minusSeconds(20)))) {
|
||||
|
||||
// Make the token refresh request
|
||||
try {
|
||||
@ -45,6 +48,15 @@ public class AuthInterceptor implements Interceptor {
|
||||
.setRefreshTokenExpiryDate(response.getExpiryDate());
|
||||
|
||||
SettingsManager.update();
|
||||
} catch (UnauthorizedAccessException uae) {
|
||||
// Crea una risposta 401 manualmente
|
||||
return new Response.Builder()
|
||||
.request(originalRequest)
|
||||
.protocol(Protocol.HTTP_1_1)
|
||||
.code(401)
|
||||
.message("Unauthorized")
|
||||
.body(ResponseBody.create(new byte[0], null))
|
||||
.build();
|
||||
} catch (Exception e) {
|
||||
return chain.proceed(originalRequest);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user