diff --git a/libs/database/src/main/java/org/fdroid/repo/RepoUriGetter.kt b/libs/database/src/main/java/org/fdroid/repo/RepoUriGetter.kt index 0048a24a2..3a8782ee0 100644 --- a/libs/database/src/main/java/org/fdroid/repo/RepoUriGetter.kt +++ b/libs/database/src/main/java/org/fdroid/repo/RepoUriGetter.kt @@ -26,8 +26,8 @@ internal object RepoUriGetter { else -> it } } - val fingerprint = uri.getQueryParameter("fingerprint")?.lowercase() - ?: uri.getQueryParameter("FINGERPRINT")?.lowercase() + val fingerprint = uri.getQueryParameter("fingerprint")?.lowercase()?.trimEnd() + ?: uri.getQueryParameter("FINGERPRINT")?.lowercase()?.trimEnd() val pathSegments = uri.pathSegments var username: String? = null diff --git a/libs/database/src/test/java/org/fdroid/repo/RepoUriGetterTest.kt b/libs/database/src/test/java/org/fdroid/repo/RepoUriGetterTest.kt index 2d5848b00..77fdd092e 100644 --- a/libs/database/src/test/java/org/fdroid/repo/RepoUriGetterTest.kt +++ b/libs/database/src/test/java/org/fdroid/repo/RepoUriGetterTest.kt @@ -32,6 +32,17 @@ internal class RepoUriGetterTest { assertEquals("foobar", uri.fingerprint) } + @Test + fun testFingerprintWithTrailingWhitespace() { + val uri1 = RepoUriGetter.getUri("https://example.org/repo?fingerprint=foobar ") + assertEquals("https://example.org/repo", uri1.uri.toString()) + assertEquals("foobar", uri1.fingerprint) + + val uri2 = RepoUriGetter.getUri("https://example.org/repo?fingerprint=foobar ") + assertEquals("https://example.org/repo", uri2.uri.toString()) + assertEquals("foobar", uri2.fingerprint) + } + @Test fun testHash() { val uri = RepoUriGetter.getUri("https://example.org/repo?fingerprint=foobar&test=42#hash")