[PM-6702] Sanitize AppLink Uri by removing the fragment char

This commit is contained in:
André Bispo
2024-07-19 12:28:18 +01:00
parent 0c878956d2
commit 1ee216cb7d

View File

@@ -1,6 +1,7 @@
package com.x8bit.bitwarden.data.auth.util
import android.content.Intent
import android.net.Uri
import com.x8bit.bitwarden.data.platform.manager.model.CompleteRegistrationData
import com.x8bit.bitwarden.data.platform.repository.model.Environment
@@ -9,10 +10,10 @@ import com.x8bit.bitwarden.data.platform.repository.model.Environment
* The [CompleteRegistrationData] will be returned when present.
*/
fun Intent.getCompleteRegistrationDataIntentOrNull(): CompleteRegistrationData? {
val uri = data ?: return null
val sanitizedUriString = data.toString().replace("/#/","/")
val uri = runCatching { Uri.parse(sanitizedUriString) }.getOrNull() ?: return null
val host = uri.host ?: return null
if (!host.contains("bitwarden.eu") && !host.contains("bitwarden.com")) return null
if (uri.path != "finish-signup") return null
if (uri.path != "/finish-signup") return null
val email = uri?.getQueryParameter("email") ?: return null
val verificationToken = uri.getQueryParameter("token") ?: return null
val fromEmail = uri.getBooleanQueryParameter("fromEmail", true)