From 3c32073065286f57835323a7f97a3958a8021dec Mon Sep 17 00:00:00 2001 From: Adam Kocoloski Date: Wed, 30 Sep 2009 22:00:41 +0000 Subject: more OAuth fixes, in particular for requests with query-string parameters git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@820469 13f79535-47bb-0310-9956-ffa450edef68 --- share/www/script/test/oauth.js | 40 ++++++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) (limited to 'share/www/script/test') diff --git a/share/www/script/test/oauth.js b/share/www/script/test/oauth.js index ebe817b2..6d8498a6 100644 --- a/share/www/script/test/oauth.js +++ b/share/www/script/test/oauth.js @@ -52,7 +52,7 @@ couchTests.oauth = function(debug) { }); } } else { - return CouchDB.request("GET", path, { + return CouchDB.request(method, path, { headers: {Authorization: OAuth.getAuthorizationHeader('', parameters)} }); } @@ -63,6 +63,11 @@ couchTests.oauth = function(debug) { var admintokenSecret = generateSecret(64); var testadminPassword = "ohsosecret"; + var adminBasicAuthHeaderValue = function() { + var retval = 'Basic ' + binb2b64(str2binb("testadmin:" + testadminPassword)); + return retval; + } + var host = CouchDB.host; var dbPair = { source: { @@ -76,14 +81,12 @@ couchTests.oauth = function(debug) { } } }, - target: "http://" + host + "/test_suite_db_b" + target: { + url: "http://" + host + "/test_suite_db_b", + headers: {"Authorization": adminBasicAuthHeaderValue()} + } }; - var adminBasicAuthHeaderValue = function() { - var retval = 'Basic ' + binb2b64(str2binb("testadmin:" + testadminPassword)); - return retval; - } - // this function will be called on the modified server var testFun = function () { try { @@ -92,6 +95,16 @@ couchTests.oauth = function(debug) { body: JSON.stringify(testadminPassword) }); + CouchDB.request("GET", "/_sleep?time=50"); + + CouchDB.request("PUT", "http://" + host + "/_config/couch_httpd_auth/require_valid_user", { + headers: { + "X-Couch-Persist": "false", + "Authorization": adminBasicAuthHeaderValue() + }, + body: JSON.stringify("true") + }); + var usersDb = new CouchDB("test_suite_users", { "X-Couch-Full-Commit":"false", "Authorization": adminBasicAuthHeaderValue() @@ -157,7 +170,9 @@ couchTests.oauth = function(debug) { T(xhr.status == expectedCode); // Replication - var result = CouchDB.replicate(dbPair.source, dbPair.target); + var result = CouchDB.replicate(dbPair.source, dbPair.target, { + headers: {"Authorization": adminBasicAuthHeaderValue()} + }); T(result.ok); // Test auth via admin user defined in .ini @@ -179,6 +194,15 @@ couchTests.oauth = function(debug) { } } } finally { + var xhr = CouchDB.request("PUT", "http://" + host + "/_config/couch_httpd_auth/require_valid_user", { + headers: { + "Authorization": adminBasicAuthHeaderValue(), + "X-Couch-Persist": "false" + }, + body: JSON.stringify("false") + }); + T(xhr.status == 200); + var xhr = CouchDB.request("DELETE", "http://" + host + "/_config/admins/testadmin", { headers: { "Authorization": adminBasicAuthHeaderValue(), -- cgit v1.2.3