From 14baadd7ea7717cdaf2ecb904ec039e8d787db1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Abel=20Garc=C3=ADa=20de=20Prada?= Date: Fri, 31 Mar 2023 09:41:57 +0200 Subject: [PATCH] Webfinger calls won't follow redirections. Only working with 2XX --- .../webfinger/GetInstancesViaWebFingerOperation.kt | 6 +++++- .../lib/resources/webfinger/responses/WebFingerResponse.kt | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/webfinger/GetInstancesViaWebFingerOperation.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/webfinger/GetInstancesViaWebFingerOperation.kt index 2517b14b..0a19b5e8 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/webfinger/GetInstancesViaWebFingerOperation.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/webfinger/GetInstancesViaWebFingerOperation.kt @@ -75,13 +75,17 @@ class GetInstancesViaWebFingerOperation( val response = parseResponse(rawResponse) Timber.d("Successful WebFinger request: $response") val operationResult = RemoteOperationResult>(RemoteOperationResult.ResultCode.OK) - operationResult.data = response.links.map { it.href } + operationResult.data = response.links?.map { it.href } ?: listOf() return operationResult } override fun run(client: OwnCloudClient): RemoteOperationResult> { val requestUri = buildRequestUri() val getMethod = GetMethod(URL(requestUri.toString())) + + // First iteration won't follow redirections. + getMethod.followRedirects = false + return try { val status = client.executeHttpMethod(getMethod) val response = getMethod.getResponseBodyAsString()!! diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/webfinger/responses/WebFingerResponse.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/webfinger/responses/WebFingerResponse.kt index d7e5a6bb..aeb6af8f 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/webfinger/responses/WebFingerResponse.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/webfinger/responses/WebFingerResponse.kt @@ -29,7 +29,7 @@ import com.squareup.moshi.JsonClass @JsonClass(generateAdapter = true) data class WebFingerResponse( val subject: String, - val links: List + val links: List? ) @JsonClass(generateAdapter = true)