diff options
author | Jędrzej Nowacki <jedrzej.nowacki@digia.com> | 2013-10-29 12:29:48 +0000 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-10-29 15:21:19 +0100 |
commit | 1e6c6395f9eebbc1e7327a1275b4ffdd88976f55 (patch) | |
tree | 1b4365fd5d0cc30428cf37af669835da0eff5710 /tests | |
parent | 0f92eda7af8b1f07829404fd1ddf240934af077f (diff) | |
download | qtenginio-1e6c6395f9eebbc1e7327a1275b4ffdd88976f55.tar.gz |
Use OAuth2 for EnginioBackendManager authentication
Change-Id: I3246a039cea4db4af2588d94055e85d63a1b53a0
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/common/common.cpp | 33 | ||||
-rw-r--r-- | tests/auto/common/common.pri | 1 |
2 files changed, 23 insertions, 11 deletions
diff --git a/tests/auto/common/common.cpp b/tests/auto/common/common.cpp index fd0281e..782b766 100644 --- a/tests/auto/common/common.cpp +++ b/tests/auto/common/common.cpp @@ -41,6 +41,7 @@ #include <Enginio/enginioclient.h> #include <Enginio/enginioreply.h> +#include <Enginio/private/enginiostring_p.h> #include <QtCore/qjsonarray.h> #include <QtTest/QSignalSpy> #include <QtTest/QtTest> @@ -139,19 +140,29 @@ bool EnginioBackendManager::synchronousRequest(const QUrl &url, const QByteArray bool EnginioBackendManager::authenticate() { - QJsonObject credentials; - credentials["email"] = _email; - credentials["password"] = _password; - QJsonObject obj; - obj["payload"] = credentials; - obj["headers"] = _headers; + QByteArray data; + { + QUrlQuery urlQuery; + urlQuery.addQueryItem(EnginioString::grant_type, EnginioString::password); + urlQuery.addQueryItem(EnginioString::username, _email); + urlQuery.addQueryItem(EnginioString::password, _password); + data = urlQuery.query().toUtf8(); + } QUrl url(_client.serviceUrl()); - url.setPath(QStringLiteral("/v1/account/auth/identity")); + url.setPath(QStringLiteral("/v1/account/auth/oauth2/token")); - // Authenticate developer - synchronousRequest(url, postRequest, obj); - QString sessionToken = _responseData["sessionToken"].toString(); - _headers["Enginio-Backend-Session"] = sessionToken; + QNetworkRequest request/*(enginio->prepareRequest(url))*/; + request.setHeader(QNetworkRequest::ContentTypeHeader, EnginioString::Application_x_www_form_urlencoded); + request.setRawHeader(EnginioString::Accept, EnginioString::Application_json); + request.setUrl(url); + + QNetworkReply *reply = _client.networkManager()->post(request, data); + QSignalSpy spy(reply, SIGNAL(finished())); + spy.wait(20000); + + _responseData = QJsonDocument::fromJson(reply->readAll()).object(); + QString sessionToken = _responseData[EnginioString::access_token].toString(); + _headers[EnginioString::Authorization] = EnginioString::Bearer_ + sessionToken; return !sessionToken.isEmpty(); } diff --git a/tests/auto/common/common.pri b/tests/auto/common/common.pri index ae366ca..6d1f324 100644 --- a/tests/auto/common/common.pri +++ b/tests/auto/common/common.pri @@ -1,3 +1,4 @@ +QT += enginio-private SOURCES += $$PWD/common.cpp HEADERS += $$PWD/common.h |