diff --git a/Auth/src/main/kotlin/com/infomaniak/core/auth/DerivedTokenGeneratorImpl.kt b/Auth/src/main/kotlin/com/infomaniak/core/auth/DerivedTokenGeneratorImpl.kt index a4ad0bcf0..deb67c553 100644 --- a/Auth/src/main/kotlin/com/infomaniak/core/auth/DerivedTokenGeneratorImpl.kt +++ b/Auth/src/main/kotlin/com/infomaniak/core/auth/DerivedTokenGeneratorImpl.kt @@ -31,7 +31,7 @@ import com.infomaniak.core.network.api.ApiController import com.infomaniak.core.network.utils.await import com.infomaniak.core.network.utils.bodyAsStringOrNull import com.infomaniak.core.sentry.SentryLog -import okhttp3.MultipartBody +import okhttp3.FormBody import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.RequestBody @@ -68,15 +68,14 @@ class DerivedTokenGeneratorImpl( is Xor.First -> result.value is Xor.Second -> return result } - val form = MultipartBody.Builder().also { - it.setType(MultipartBody.FORM) - it.addFormDataPart("grant_type", "urn:ietf:params:oauth:grant-type:token-exchange") - it.addFormDataPart("subject_token", token) - it.addFormDataPart("subject_token_type", "urn:ietf:params:oauth:token-type:access_token") - it.addFormDataPart("client_assertion_type", "urn:ietf:params:oauth:client-assertion-type:jwt-bearer") - it.addFormDataPart("client_assertion", attestationToken) - it.addFormDataPart("client_id", clientId()) - if (accessType == null) it.addFormDataPart("duration", "infinite") + val form = FormBody.Builder().also { + it.add("grant_type", "urn:ietf:params:oauth:grant-type:token-exchange") + it.add("subject_token", token) + it.add("subject_token_type", "urn:ietf:params:oauth:token-type:access_token") + it.add("client_assertion_type", "urn:ietf:params:oauth:client-assertion-type:jwt-bearer") + it.add("client_assertion", attestationToken) + it.add("client_id", clientId()) + if (accessType == null) it.add("duration", "infinite") }.build() val okHttpClient = OkHttpClient() diff --git a/Auth/src/main/kotlin/com/infomaniak/core/auth/api/AuthRepository.kt b/Auth/src/main/kotlin/com/infomaniak/core/auth/api/AuthRepository.kt index 735f8e5a7..fe6f75e27 100644 --- a/Auth/src/main/kotlin/com/infomaniak/core/auth/api/AuthRepository.kt +++ b/Auth/src/main/kotlin/com/infomaniak/core/auth/api/AuthRepository.kt @@ -26,7 +26,7 @@ import com.infomaniak.core.network.api.ApiController.gson import com.infomaniak.core.network.networking.DefaultHttpClientProvider import com.infomaniak.core.network.utils.await import com.infomaniak.core.network.utils.bodyAsStringOrNull -import okhttp3.MultipartBody +import okhttp3.FormBody import okhttp3.Request object AuthRepository { @@ -38,13 +38,12 @@ object AuthRepository { throw RefreshTokenException() } - val formBuilder: MultipartBody.Builder = MultipartBody.Builder() - .setType(MultipartBody.FORM) - .addFormDataPart("grant_type", "refresh_token") - .addFormDataPart("client_id", AuthConfiguration.clientId()) - .addFormDataPart("refresh_token", refreshToken) + val formBuilder: FormBody.Builder = FormBody.Builder() + .add("grant_type", "refresh_token") + .add("client_id", AuthConfiguration.clientId()) + .add("refresh_token", refreshToken) - if (AuthConfiguration.accessType == null) formBuilder.addFormDataPart("duration", "infinite") + if (AuthConfiguration.accessType == null) formBuilder.add("duration", "infinite") val request = Request.Builder() .url(ApiRoutesCore.TOKEN_URL) diff --git a/Login/src/main/java/com/infomaniak/core/login/InfomaniakLogin.kt b/Login/src/main/java/com/infomaniak/core/login/InfomaniakLogin.kt index 48ad39e75..c1dcf6113 100644 --- a/Login/src/main/java/com/infomaniak/core/login/InfomaniakLogin.kt +++ b/Login/src/main/java/com/infomaniak/core/login/InfomaniakLogin.kt @@ -36,7 +36,7 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.invoke import kotlinx.serialization.Serializable import kotlinx.serialization.json.Json -import okhttp3.MultipartBody +import okhttp3.FormBody import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.RequestBody @@ -289,26 +289,24 @@ class InfomaniakLogin( } suspend fun getToken(okHttpClient: OkHttpClient, code: String): TokenResult { - val formBuilder: MultipartBody.Builder = MultipartBody.Builder() - .setType(MultipartBody.FORM) - .addFormDataPart("grant_type", "authorization_code") - .addFormDataPart("client_id", clientID) - .addFormDataPart("code", code) - .addFormDataPart("code_verifier", getCodeVerifier()) - .addFormDataPart("redirect_uri", getRedirectURI()) + val formBuilder: FormBody.Builder = FormBody.Builder() + .add("grant_type", "authorization_code") + .add("client_id", clientID) + .add("code", code) + .add("code_verifier", getCodeVerifier()) + .add("redirect_uri", getRedirectURI()) return getToken(okHttpClient = okHttpClient, body = formBuilder.build()) } suspend fun getToken(okHttpClient: OkHttpClient, username: String, password: String): TokenResult { - val formBuilder: MultipartBody.Builder = MultipartBody.Builder() - .setType(MultipartBody.FORM) - .addFormDataPart("grant_type", "password") - .addFormDataPart("client_id", clientID) - .addFormDataPart("username", username) - .addFormDataPart("password", password) - - accessType?.let { formBuilder.addFormDataPart("access_type", it.apiValue) } + val formBuilder: FormBody.Builder = FormBody.Builder() + .add("grant_type", "password") + .add("client_id", clientID) + .add("username", username) + .add("password", password) + + accessType?.let { formBuilder.add("access_type", it.apiValue) } return getToken(okHttpClient = okHttpClient, body = formBuilder.build()) }