From cda18861aea3ced7835f959cba612cea98761c58 Mon Sep 17 00:00:00 2001 From: Damian Tarnawsky <84595830+dtarnawsky@users.noreply.github.com> Date: Fri, 5 Apr 2024 07:37:20 -0700 Subject: [PATCH] fix: secure cookies often are not set by the cookie plugin (#7261) Co-authored-by: Mark Anderson --- .../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 1baf16695..cf4ab6326 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; }