From 04b6b9251a404468e6b9f1ba9cc2ba325e0848c1 Mon Sep 17 00:00:00 2001 From: "damian.ionic" Date: Thu, 15 Feb 2024 09:24:03 -0800 Subject: [PATCH] fix: secure cookies often are not set by the cookie plugin --- .../plugin/CapacitorCookieManager.java | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/android/capacitor/src/main/java/com/getcapacitor/plugin/CapacitorCookieManager.java b/android/capacitor/src/main/java/com/getcapacitor/plugin/CapacitorCookieManager.java index 1baf16695b..cf4ab63266 100644 --- a/android/capacitor/src/main/java/com/getcapacitor/plugin/CapacitorCookieManager.java +++ b/android/capacitor/src/main/java/com/getcapacitor/plugin/CapacitorCookieManager.java @@ -52,23 +52,26 @@ public void removeSessionCookies() { } public String getSanitizedDomain(String url) throws URISyntaxException { - if (url == null || url.isEmpty()) { + if (this.serverUrl != null && !this.serverUrl.isEmpty() && (url == null || url.isEmpty() || this.serverUrl.contains(url))) { url = this.serverUrl; + } else if (this.localUrl != null && !this.localUrl.isEmpty() && (url == null || url.isEmpty() || this.localUrl.contains(url))) { + url = this.localUrl; + } else try { + URI uri = new URI(url); + String scheme = uri.getScheme(); + if (scheme == null || scheme.isEmpty()) { + url = "https://" + url; + } + } catch (URISyntaxException e) { + Logger.error(TAG, "Failed to get scheme from URL.", e); } try { new URI(url); - } catch (Exception ignored) { - url = this.localUrl; - - try { - new URI(url); - } catch (Exception error) { - Logger.error(TAG, "Failed to get sanitized URL.", error); - throw error; - } + } catch (Exception error) { + Logger.error(TAG, "Failed to get sanitized URL.", error); + throw error; } - return url; }