From e008156a180f9a5756b963f20f82245d324c74f8 Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Tue, 12 Dec 2023 19:31:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/legado/app/help/http/CookieStore.kt | 2 +- .../io/legado/app/utils/CookieManagerExtensions.kt | 14 +++++++------- .../main/java/io/legado/app/utils/NetworkUtils.kt | 7 +++++++ 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/io/legado/app/help/http/CookieStore.kt b/app/src/main/java/io/legado/app/help/http/CookieStore.kt index 20333f4ae..bc17fab6c 100644 --- a/app/src/main/java/io/legado/app/help/http/CookieStore.kt +++ b/app/src/main/java/io/legado/app/help/http/CookieStore.kt @@ -74,7 +74,7 @@ object CookieStore : CookieManagerInterface { appDb.cookieDao.delete(domain) CacheManager.deleteMemory("${domain}_cookie") CacheManager.deleteMemory("${domain}_session_cookie") - android.webkit.CookieManager.getInstance().removeCookie(domain) + android.webkit.CookieManager.getInstance().removeCookie(url) } override fun cookieToMap(cookie: String): MutableMap { diff --git a/app/src/main/java/io/legado/app/utils/CookieManagerExtensions.kt b/app/src/main/java/io/legado/app/utils/CookieManagerExtensions.kt index c1282f84d..ba57149e6 100644 --- a/app/src/main/java/io/legado/app/utils/CookieManagerExtensions.kt +++ b/app/src/main/java/io/legado/app/utils/CookieManagerExtensions.kt @@ -6,17 +6,17 @@ import android.webkit.CookieManager @Suppress("unused") -fun CookieManager.removeCookie(domain: String) { +fun CookieManager.removeCookie(url: String) { val cm = CookieManager.getInstance() - val urls = arrayOf( - "http://$domain", - "https://$domain" + val domains = arrayOf( + NetworkUtils.getDomain(url), + NetworkUtils.getSubDomain(url) ) - urls.forEach { url -> - val cookieGlob: String? = cm.getCookie(url) + domains.forEach { dm -> + val cookieGlob: String? = cm.getCookie(dm) cookieGlob?.splitNotBlank(";")?.forEach { val cookieName = it.substringBefore("=") - cm.setCookie(url, "$cookieName=; Expires=Wed, 31 Dec 2000 23:59:59 GMT") + cm.setCookie(dm, "$cookieName=; Expires=Wed, 31 Dec 2000 23:59:59 GMT") } } } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/utils/NetworkUtils.kt b/app/src/main/java/io/legado/app/utils/NetworkUtils.kt index eff8cb173..830437fd4 100644 --- a/app/src/main/java/io/legado/app/utils/NetworkUtils.kt +++ b/app/src/main/java/io/legado/app/utils/NetworkUtils.kt @@ -179,6 +179,13 @@ object NetworkUtils { }.getOrDefault(baseUrl) } + fun getDomain(url: String): String { + val baseUrl = getBaseUrl(url) ?: return url + return kotlin.runCatching { + URL(baseUrl).host + }.getOrDefault(baseUrl) + } + /** * Get local Ip address. */