From 82e45a403f91571e5facbc1105472bdf4a96825b Mon Sep 17 00:00:00 2001 From: Bryan Gilbert Date: Wed, 14 Sep 2016 16:08:36 -0400 Subject: [PATCH 1/4] updated basic auth cache to key off of url origin --- components/net/fetch/methods.rs | 2 +- components/net/http_loader.rs | 11 ++++++----- components/net/resource_thread.rs | 2 +- tests/unit/net/http_loader.rs | 2 +- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/components/net/fetch/methods.rs b/components/net/fetch/methods.rs index b9caa134712..819c85ef564 100644 --- a/components/net/fetch/methods.rs +++ b/components/net/fetch/methods.rs @@ -827,7 +827,7 @@ fn http_network_or_cache_fetch(request: Rc, let mut authorization_value = None; // Substep 4 - if let Some(basic) = auth_from_cache(&context.state.auth_cache, ¤t_url) { + if let Some(basic) = auth_from_cache(&context.state.auth_cache, ¤t_url.origin()) { if !http_request.use_url_credentials || !has_credentials(¤t_url) { authorization_value = Some(basic); } diff --git a/components/net/http_loader.rs b/components/net/http_loader.rs index d104521c48b..ec73a5e39a9 100644 --- a/components/net/http_loader.rs +++ b/components/net/http_loader.rs @@ -52,7 +52,7 @@ use time; use time::Tm; #[cfg(any(target_os = "macos", target_os = "linux", target_os = "windows"))] use tinyfiledialogs; -use url::{Position, Url}; +use url::{Position, Url, Origin}; use util::prefs::PREFS; use util::thread::spawn_named; use uuid; @@ -688,15 +688,15 @@ fn set_auth_header(headers: &mut Headers, if let Some(auth) = auth_from_url(url) { headers.set(auth); } else { - if let Some(basic) = auth_from_cache(auth_cache, url) { + if let Some(basic) = auth_from_cache(auth_cache, &url.origin()) { headers.set(Authorization(basic)); } } } } -pub fn auth_from_cache(auth_cache: &Arc>, url: &Url) -> Option { - if let Some(ref auth_entry) = auth_cache.read().unwrap().entries.get(url) { +pub fn auth_from_cache(auth_cache: &Arc>, origin: &Origin) -> Option { + if let Some(ref auth_entry) = auth_cache.read().unwrap().entries.get(&origin.ascii_serialization()) { let user_name = auth_entry.user_name.clone(); let password = Some(auth_entry.password.clone()); Some(Basic { username: user_name, password: password }) @@ -1023,7 +1023,8 @@ pub fn load(load_data: &LoadData, password: auth_header.password.to_owned().unwrap(), }; - http_state.auth_cache.write().unwrap().entries.insert(doc_url.clone(), auth_entry); + let serialized_origin = doc_url.origin().ascii_serialization(); + http_state.auth_cache.write().unwrap().entries.insert(serialized_origin, auth_entry); } } diff --git a/components/net/resource_thread.rs b/components/net/resource_thread.rs index d04e4d9b4c0..60699ca84f9 100644 --- a/components/net/resource_thread.rs +++ b/components/net/resource_thread.rs @@ -466,7 +466,7 @@ impl AuthCache { #[derive(RustcDecodable, RustcEncodable, Clone)] pub struct AuthCache { pub version: u32, - pub entries: HashMap, + pub entries: HashMap, } pub struct CoreResourceManager { diff --git a/tests/unit/net/http_loader.rs b/tests/unit/net/http_loader.rs index 15bd6b8fd25..f22dc001c6e 100644 --- a/tests/unit/net/http_loader.rs +++ b/tests/unit/net/http_loader.rs @@ -1533,7 +1533,7 @@ fn test_if_auth_creds_not_in_url_but_in_cache_it_sets_it() { password: "test".to_owned(), }; - http_state.auth_cache.write().unwrap().entries.insert(url.clone(), auth_entry); + http_state.auth_cache.write().unwrap().entries.insert(url.origin().clone(), auth_entry); let mut load_data = LoadData::new(LoadContext::Browsing, url, &HttpTest); load_data.credentials_flag = true; From 0bcd04d2abd338d4d8abb5539f66d1c44bab1569 Mon Sep 17 00:00:00 2001 From: Bryan Gilbert Date: Wed, 14 Sep 2016 16:12:40 -0400 Subject: [PATCH 2/4] store basic auth in cache on redirect response --- components/net/http_loader.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/net/http_loader.rs b/components/net/http_loader.rs index ec73a5e39a9..b608220b442 100644 --- a/components/net/http_loader.rs +++ b/components/net/http_loader.rs @@ -1017,7 +1017,8 @@ pub fn load(load_data: &LoadData, new_auth_header = None; if let Some(auth_header) = request_headers.get::>() { - if response.status().class() == StatusClass::Success { + if response.status().class() == StatusClass::Success || + response.status().class() == StatusClass::Redirection { let auth_entry = AuthCacheEntry { user_name: auth_header.username.to_owned(), password: auth_header.password.to_owned().unwrap(), From 712b1d5ea0eb9625a9e868673bc9d172f84b9ada Mon Sep 17 00:00:00 2001 From: Bryan Gilbert Date: Thu, 15 Sep 2016 12:33:31 -0400 Subject: [PATCH 3/4] added test that verifies proper basic auth caching behavior --- tests/wpt/metadata/MANIFEST.json | 29 +++++++++++++++++- .../http/basic-auth-cache-test-ref.html | 6 ++++ .../http/basic-auth-cache-test.html | 15 +++++++++ .../http/resources/image.png | Bin 0 -> 11171 bytes .../http/resources/securedimage.py | 17 ++++++++++ 5 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 tests/wpt/web-platform-tests/http/basic-auth-cache-test-ref.html create mode 100644 tests/wpt/web-platform-tests/http/basic-auth-cache-test.html create mode 100644 tests/wpt/web-platform-tests/http/resources/image.png create mode 100644 tests/wpt/web-platform-tests/http/resources/securedimage.py diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 855adc0d2f9..8b351d14d93 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -37486,9 +37486,36 @@ "url": "/dom/lists/DOMTokenList-Iterable.html" } ] + }, + "reftest": { + "http/basic-auth-cache-test.html": [ + { + "path": "http/basic-auth-cache-test.html", + "references": [ + [ + "/http/basic-auth-cache-test-ref.html", + "==" + ] + ], + "url": "/http/basic-auth-cache-test.html" + } + ] } }, - "reftest_nodes": {} + "reftest_nodes": { + "http/reftest-basic-auth-cache-test.html": [ + { + "path": "http/basic-auth-cache-test.html", + "references": [ + [ + "/http/basic-auth-cache-test-ref.html", + "==" + ] + ], + "url": "/http/basic-auth-cache-test.html" + } + ] + } }, "reftest_nodes": { "2dcontext/building-paths/canvas_complexshapes_arcto_001.htm": [ diff --git a/tests/wpt/web-platform-tests/http/basic-auth-cache-test-ref.html b/tests/wpt/web-platform-tests/http/basic-auth-cache-test-ref.html new file mode 100644 index 00000000000..22b0deb4ebb --- /dev/null +++ b/tests/wpt/web-platform-tests/http/basic-auth-cache-test-ref.html @@ -0,0 +1,6 @@ + + + + + + diff --git a/tests/wpt/web-platform-tests/http/basic-auth-cache-test.html b/tests/wpt/web-platform-tests/http/basic-auth-cache-test.html new file mode 100644 index 00000000000..b599c0925ad --- /dev/null +++ b/tests/wpt/web-platform-tests/http/basic-auth-cache-test.html @@ -0,0 +1,15 @@ + + + + +
+
+ + diff --git a/tests/wpt/web-platform-tests/http/resources/image.png b/tests/wpt/web-platform-tests/http/resources/image.png new file mode 100644 index 0000000000000000000000000000000000000000..0daa1b519e572615f868ece24c15775111e5dad5 GIT binary patch literal 11171 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 Date: Thu, 15 Sep 2016 16:47:05 -0400 Subject: [PATCH 4/4] removed race condition possibility from auth cache test & fixed up test errors --- tests/unit/net/http_loader.rs | 2 +- tests/wpt/metadata/MANIFEST.json | 18 ++++----- .../http/basic-auth-cache-test-ref.html | 5 ++- .../http/basic-auth-cache-test.html | 37 +++++++++++++------ 4 files changed, 40 insertions(+), 22 deletions(-) diff --git a/tests/unit/net/http_loader.rs b/tests/unit/net/http_loader.rs index f22dc001c6e..5530134a15c 100644 --- a/tests/unit/net/http_loader.rs +++ b/tests/unit/net/http_loader.rs @@ -1533,7 +1533,7 @@ fn test_if_auth_creds_not_in_url_but_in_cache_it_sets_it() { password: "test".to_owned(), }; - http_state.auth_cache.write().unwrap().entries.insert(url.origin().clone(), auth_entry); + http_state.auth_cache.write().unwrap().entries.insert(url.origin().clone().ascii_serialization(), auth_entry); let mut load_data = LoadData::new(LoadContext::Browsing, url, &HttpTest); load_data.credentials_flag = true; diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 8b351d14d93..4dd9d658d0a 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -37479,14 +37479,6 @@ "deleted": [], "deleted_reftests": {}, "items": { - "testharness": { - "dom/lists/DOMTokenList-Iterable.html": [ - { - "path": "dom/lists/DOMTokenList-Iterable.html", - "url": "/dom/lists/DOMTokenList-Iterable.html" - } - ] - }, "reftest": { "http/basic-auth-cache-test.html": [ { @@ -37500,10 +37492,18 @@ "url": "/http/basic-auth-cache-test.html" } ] + }, + "testharness": { + "dom/lists/DOMTokenList-Iterable.html": [ + { + "path": "dom/lists/DOMTokenList-Iterable.html", + "url": "/dom/lists/DOMTokenList-Iterable.html" + } + ] } }, "reftest_nodes": { - "http/reftest-basic-auth-cache-test.html": [ + "http/basic-auth-cache-test.html": [ { "path": "http/basic-auth-cache-test.html", "references": [ diff --git a/tests/wpt/web-platform-tests/http/basic-auth-cache-test-ref.html b/tests/wpt/web-platform-tests/http/basic-auth-cache-test-ref.html index 22b0deb4ebb..87e9ad509b3 100644 --- a/tests/wpt/web-platform-tests/http/basic-auth-cache-test-ref.html +++ b/tests/wpt/web-platform-tests/http/basic-auth-cache-test-ref.html @@ -1,6 +1,9 @@ - + + + + diff --git a/tests/wpt/web-platform-tests/http/basic-auth-cache-test.html b/tests/wpt/web-platform-tests/http/basic-auth-cache-test.html index b599c0925ad..f7fe2b56690 100644 --- a/tests/wpt/web-platform-tests/http/basic-auth-cache-test.html +++ b/tests/wpt/web-platform-tests/http/basic-auth-cache-test.html @@ -1,15 +1,30 @@ - - - -
-
+ + + + + + + + + + +