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 io.jsonwebtoken.Claims;
|
||||||
import it.integry.integrywmsnative.core.authentication.JwtUtils;
|
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.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.gest.login.rest.RefreshRESTConsumer;
|
import it.integry.integrywmsnative.gest.login.rest.RefreshRESTConsumer;
|
||||||
import okhttp3.Interceptor;
|
import okhttp3.Interceptor;
|
||||||
|
import okhttp3.Protocol;
|
||||||
import okhttp3.Response;
|
import okhttp3.Response;
|
||||||
|
import okhttp3.ResponseBody;
|
||||||
|
|
||||||
public class AuthInterceptor implements Interceptor {
|
public class AuthInterceptor implements Interceptor {
|
||||||
|
|
||||||
@ -30,7 +33,7 @@ public class AuthInterceptor implements Interceptor {
|
|||||||
var accessToken = SettingsManager.i().getUserSession().getAccessToken();
|
var accessToken = SettingsManager.i().getUserSession().getAccessToken();
|
||||||
var accessTokenExpiryDate = SettingsManager.i().getUserSession().getAccessTokenExpiryDate();
|
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
|
// Make the token refresh request
|
||||||
try {
|
try {
|
||||||
@ -45,6 +48,15 @@ public class AuthInterceptor implements Interceptor {
|
|||||||
.setRefreshTokenExpiryDate(response.getExpiryDate());
|
.setRefreshTokenExpiryDate(response.getExpiryDate());
|
||||||
|
|
||||||
SettingsManager.update();
|
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) {
|
} catch (Exception e) {
|
||||||
return chain.proceed(originalRequest);
|
return chain.proceed(originalRequest);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user