diff --git a/app/src/main/java/org/fossasia/openevent/general/auth/RequestAuthenticator.kt b/app/src/main/java/org/fossasia/openevent/general/auth/RequestAuthenticator.kt index 2b16608b8..af29604c2 100644 --- a/app/src/main/java/org/fossasia/openevent/general/auth/RequestAuthenticator.kt +++ b/app/src/main/java/org/fossasia/openevent/general/auth/RequestAuthenticator.kt @@ -1,18 +1,19 @@ package org.fossasia.openevent.general.auth -import okhttp3.Authenticator -import okhttp3.Request +import okhttp3.Interceptor import okhttp3.Response -import okhttp3.Route -class RequestAuthenticator(private val authHolder: AuthHolder) : Authenticator { +class RequestAuthenticator(private val authHolder: AuthHolder) : Interceptor { - override fun authenticate(route: Route?, response: Response): Request? { - val authorization: String? = authHolder.getAuthorization() - return if (response.request().header("Authorization") == null && authorization != null) { - response.request().newBuilder() - .header("Authorization", authorization) - .build() - } else null // Give up, we already tried authenticating + override fun intercept(chain: Interceptor.Chain): Response? { + val authorization = authHolder.getAuthorization() + val original = chain.request() + return if (authorization != null) { + val request = original.newBuilder() + .header("Authorization", authorization) + .build() + chain.proceed(request) + } else + chain.proceed(original) } } diff --git a/app/src/main/java/org/fossasia/openevent/general/di/Modules.kt b/app/src/main/java/org/fossasia/openevent/general/di/Modules.kt index 9e332238d..e73ef5472 100644 --- a/app/src/main/java/org/fossasia/openevent/general/di/Modules.kt +++ b/app/src/main/java/org/fossasia/openevent/general/di/Modules.kt @@ -5,7 +5,7 @@ import com.fasterxml.jackson.databind.DeserializationFeature import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper import com.github.jasminb.jsonapi.retrofit.JSONAPIConverterFactory -import okhttp3.Authenticator +import okhttp3.Interceptor import okhttp3.OkHttpClient import okhttp3.logging.HttpLoggingInterceptor import org.fossasia.openevent.general.BuildConfig @@ -153,7 +153,7 @@ val networkModule = module { objectMapper } - single { RequestAuthenticator(get()) as Authenticator } + single { RequestAuthenticator(get()) as Interceptor } single { val connectTimeout = 15 // 15s @@ -165,7 +165,7 @@ val networkModule = module { .addInterceptor( HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY) ) - .authenticator(get()) + .addInterceptor(get()) .build() }