fix memory leaks, implement all get requests and unit tests for them

This commit is contained in:
Ondřej Fischer 2019-10-11 11:26:08 +02:00
parent f4ece0a43a
commit 235ddc637d
8 changed files with 413 additions and 71 deletions

View File

@ -14,15 +14,17 @@ ColnodAPI::ColnodAPI()
void ColnodAPI::downloadData() void ColnodAPI::downloadData()
{ {
Response* resp0 = reqMan->getSubjects(); Response* resp0 = reqMan->getSubjects();
connect(resp0, &Response::finished, [=](){ connect(resp0, &Response::ready, [=](){
dataMan->localSaveSubjects(resp0->reply->readAll()); dataMan->localSaveSubjects(resp0->reply->readAll());
emit partReady(); emit partReady();
resp0->deleteLater();
}); });
Response* resp1 = reqMan->getTokens(); Response* resp1 = reqMan->getTokens();
connect(resp1, &Response::finished, [=](){ connect(resp1, &Response::ready, [=](){
dataMan->localSaveTokens(resp1->reply->readAll()); dataMan->localSaveTokens(resp1->reply->readAll());
emit partReady(); emit partReady();
resp1->deleteLater();
}); });
/* /*

View File

@ -71,7 +71,7 @@ QString DatabaseManager::getTestMessage(int id)
return query.value(0).toString(); return query.value(0).toString();
} }
void DatabaseManager::createTestRecord(QString msg) int DatabaseManager::createTestRecord(QString msg)
{ {
query.exec("SELECT MAX(id) FROM test"); query.exec("SELECT MAX(id) FROM test");
query.next(); query.next();
@ -82,7 +82,7 @@ void DatabaseManager::createTestRecord(QString msg)
query.exec(); query.exec();
query.next(); query.next();
qDebug() << "U inserted new row, id: " << id << "msg: " << getTestMessage(id); qDebug() << "U inserted new row, id: " << id << "msg: " << getTestMessage(id);
return id;
} }

View File

@ -23,7 +23,7 @@ public:
void saveSubjectAttribute(Subject* subject, QString table); void saveSubjectAttribute(Subject* subject, QString table);
QString getTestMessage(int id); QString getTestMessage(int id);
void createTestRecord(QString msg); int createTestRecord(QString msg);
bool getOpened() {return opened;} bool getOpened() {return opened;}

View File

@ -18,7 +18,6 @@ RequestManager::RequestManager()
void RequestManager::login(QString host, QString username, QString password) void RequestManager::login(QString host, QString username, QString password)
{ {
QNetworkRequest request; QNetworkRequest request;
QString hash = encryptedPassword(this->password); QString hash = encryptedPassword(this->password);
authHeader = getLoginHeader(this->user, hash); authHeader = getLoginHeader(this->user, hash);
@ -28,6 +27,7 @@ void RequestManager::login(QString host, QString username, QString password)
}; };
//this->host = host; //this->host = host;
request.setUrl(this->host + "/AaaManager/authSession"); request.setUrl(this->host + "/AaaManager/authSession");
request.setRawHeader("Authorization", authHeader.toLocal8Bit()); request.setRawHeader("Authorization", authHeader.toLocal8Bit());
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json; charset=UTF-8"); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json; charset=UTF-8");
@ -38,14 +38,16 @@ void RequestManager::login(QString host, QString username, QString password)
QObject::connect(reply, &QNetworkReply::finished, [=]() { QObject::connect(reply, &QNetworkReply::finished, [=]() {
if (reply->error()) if (reply->error())
{ {
qDebug() << reply->errorString(); qDebug() << "Login failed: "<< reply->errorString();
loginStatus = false; loginStatus = false;
reply->deleteLater();
return; return;
} }
jsonResponse = reply->readAll(); jsonResponse = reply->readAll();
prepareAuthHeader(); prepareAuthHeader();
if (loginStatus) if (loginStatus)
return; return;
qDebug() << "Logged in successfully.";
loginStatus = true; loginStatus = true;
emit successLogin(); emit successLogin();
reply->deleteLater(); reply->deleteLater();
@ -56,7 +58,6 @@ QNetworkReply* RequestManager::getRequest(QString endpoint)
{ {
QNetworkRequest request; QNetworkRequest request;
request.setUrl(host + endpoint); request.setUrl(host + endpoint);
qDebug() << "Auth: " << authHeader;
request.setRawHeader("Authorization", authHeader.toLocal8Bit()); request.setRawHeader("Authorization", authHeader.toLocal8Bit());
QNetworkReply* reply = manager->post(request, QByteArray()); QNetworkReply* reply = manager->post(request, QByteArray());
QObject::connect(reply, &QNetworkReply::finished, [=]() { QObject::connect(reply, &QNetworkReply::finished, [=]() {
@ -64,14 +65,40 @@ QNetworkReply* RequestManager::getRequest(QString endpoint)
{ {
qDebug() << reply->errorString(); qDebug() << reply->errorString();
loginStatus = false; loginStatus = false;
//getRequest(endpoint); reply->deleteLater();
return; return;
} }
qDebug() << "Authorized successfully, response ready.";
emit responseReady(); emit responseReady();
reply->deleteLater();
}); });
return reply; return reply;
} }
QNetworkReply* RequestManager::postRequest(QString endpoint, QByteArray json)
{
QNetworkRequest request;
request.setUrl(host + endpoint);
request.setRawHeader("Authorization", authHeader.toLocal8Bit());
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json; charset=UTF-8");
QNetworkReply* reply = manager->post(request, json);
QObject::connect(reply, &QNetworkReply::finished, [=]() {
if (reply->error())
{
qDebug() << "Authorization failed: " << reply->errorString();
loginStatus = false;
reply->deleteLater();
return;
}
qDebug() << "Authorized successfully, response ready.";
emit responseReady();
reply->deleteLater();
});
return reply;
}
QString RequestManager::getFromJson(QString json, const QString &member) QString RequestManager::getFromJson(QString json, const QString &member)
{ {
QJsonParseError err; QJsonParseError err;
@ -113,6 +140,14 @@ void RequestManager::onSSLError(QNetworkReply *reply, const QList<QSslError> &er
} }
QByteArray RequestManager::makeTimeStampJson(uint64_t time)
{
QJsonObject reqBody = {{"timestamp",QJsonValue(static_cast<qint64>(time)) }};
QJsonDocument doc;
doc.setObject(reqBody);
return doc.toJson();
}
Response* RequestManager::getSubjects() Response* RequestManager::getSubjects()
{ {
auto response = new Response; auto response = new Response;
@ -121,13 +156,13 @@ Response* RequestManager::getSubjects()
connect(this, &RequestManager::successLogin, [=](){ connect(this, &RequestManager::successLogin, [=](){
auto subjectReply = getRequest("/SubjectManager/getSubjects"); auto subjectReply = getRequest("/SubjectManager/getSubjects");
response->reply = subjectReply; response->reply = subjectReply;
connect(subjectReply, &QNetworkReply::finished, response, &Response::finished); connect(subjectReply, &QNetworkReply::finished, response, &Response::ready);
}); });
} }
else else
{ {
QNetworkReply* reply = getRequest("/SubjectManager/getSubjects"); QNetworkReply* reply = getRequest("/SubjectManager/getSubjects");
connect(reply, &QNetworkReply::finished, response, &Response::finished); connect(reply, &QNetworkReply::finished, response, &Response::ready);
} }
return response; return response;
@ -141,13 +176,13 @@ Response* RequestManager::getTokens()
connect(this, &RequestManager::successLogin, [=](){ connect(this, &RequestManager::successLogin, [=](){
auto subjectReply = getRequest("/TokenManager/getTokens"); auto subjectReply = getRequest("/TokenManager/getTokens");
response->reply = subjectReply; response->reply = subjectReply;
connect(subjectReply, &QNetworkReply::finished, response, &Response::finished); connect(subjectReply, &QNetworkReply::finished, response, &Response::ready);
}); });
} }
else else
{ {
QNetworkReply* reply = getRequest("/TokenManager/getTokens"); QNetworkReply* reply = getRequest("/TokenManager/getTokens");
connect(reply, &QNetworkReply::finished, response, &Response::finished); connect(reply, &QNetworkReply::finished, response, &Response::ready);
} }
return response; return response;
@ -161,66 +196,216 @@ Response* RequestManager::getTokenSubject()
connect(this, &RequestManager::successLogin, [=](){ connect(this, &RequestManager::successLogin, [=](){
auto subjectReply = getRequest("/OpenManager/getTokenSubject"); auto subjectReply = getRequest("/OpenManager/getTokenSubject");
response->reply = subjectReply; response->reply = subjectReply;
connect(subjectReply, &QNetworkReply::finished, response, &Response::finished); connect(subjectReply, &QNetworkReply::finished, response, &Response::ready);
}); });
} }
else else
{ {
QNetworkReply* reply = getRequest("/OpenManager/getTokenSubject"); QNetworkReply* reply = getRequest("/OpenManager/getTokenSubject");
connect(reply, &QNetworkReply::finished, response, &Response::finished); connect(reply, &QNetworkReply::finished, response, &Response::ready);
} }
return response; return response;
} }
Response* RequestManager::getSubjectsUpdated(uint64_t) Response* RequestManager::getSubjectsUpdated(uint64_t time)
{ {
auto response = new Response;
if (!loginStatus){
login(host, user, password);
connect(this, &RequestManager::successLogin, [=](){
auto subjectReply = postRequest("/SubjectManager/getSubjectsUpdated", makeTimeStampJson(time));
response->reply = subjectReply;
connect(subjectReply, &QNetworkReply::finished, response, &Response::ready);
});
}
else
{
QNetworkReply* reply = postRequest("/SubjectManager/getSubjectsUpdated", makeTimeStampJson(time));
connect(reply, &QNetworkReply::finished, response, &Response::ready);
} }
Response* RequestManager::getSubjectsDeleted(uint64_t) return response;
{
} }
Response* RequestManager::getTokensUpdated(uint64_t) Response* RequestManager::getSubjectsDeleted(uint64_t time)
{ {
auto response = new Response;
if (!loginStatus){
login(host, user, password);
connect(this, &RequestManager::successLogin, [=](){
auto subjectReply = postRequest("/SubjectManager/getSubjectsDeleted", makeTimeStampJson(time));
response->reply = subjectReply;
connect(subjectReply, &QNetworkReply::finished, response, &Response::ready);
});
}
else
{
QNetworkReply* reply = postRequest("/SubjectManager/getSubjectsDeleted", makeTimeStampJson(time));
connect(reply, &QNetworkReply::finished, response, &Response::ready);
} }
Response* RequestManager::getTokensDeleted(uint64_t) return response;
{ }
Response* RequestManager::getTokensUpdated(uint64_t time)
{
auto response = new Response;
if (!loginStatus){
login(host, user, password);
connect(this, &RequestManager::successLogin, [=](){
auto subjectReply = postRequest("/TokenManager/getTokensUpdated", makeTimeStampJson(time));
response->reply = subjectReply;
connect(subjectReply, &QNetworkReply::finished, response, &Response::ready);
});
}
else
{
QNetworkReply* reply = postRequest("/TokenManager/getTokensUpdated", makeTimeStampJson(time));
connect(reply, &QNetworkReply::finished, response, &Response::ready);
}
return response;
}
Response* RequestManager::getTokensDeleted(uint64_t time)
{
auto response = new Response;
if (!loginStatus){
login(host, user, password);
connect(this, &RequestManager::successLogin, [=](){
auto subjectReply = postRequest("/TokenManager/getTokensDeleted", makeTimeStampJson(time));
response->reply = subjectReply;
connect(subjectReply, &QNetworkReply::finished, response, &Response::ready);
});
}
else
{
QNetworkReply* reply = postRequest("/TokenManager/getTokensDeleted", makeTimeStampJson(time));
connect(reply, &QNetworkReply::finished, response, &Response::ready);
}
return response;
} }
Response* RequestManager::getAccessGroups() Response* RequestManager::getAccessGroups()
{ {
auto response = new Response;
if (!loginStatus){
login(host, user, password);
connect(this, &RequestManager::successLogin, [=](){
auto subjectReply = getRequest("/AccessManager/getAccessGroups");
response->reply = subjectReply;
connect(subjectReply, &QNetworkReply::finished, response, &Response::ready);
});
}
else
{
QNetworkReply* reply = getRequest("/AccessManager/getAccessGroups");
connect(reply, &QNetworkReply::finished, response, &Response::ready);
} }
Response* RequestManager::getAccessGroupsUpdated(uint64_t) return response;
{
} }
Response* RequestManager::getAccessGroupsDeleted(uint64_t) Response* RequestManager::getAccessGroupsUpdated(uint64_t time)
{ {
auto response = new Response;
if (!loginStatus){
login(host, user, password);
connect(this, &RequestManager::successLogin, [=](){
auto subjectReply = postRequest("/AccessManager/getAccessGroupsUpdated", makeTimeStampJson(time));
response->reply = subjectReply;
connect(subjectReply, &QNetworkReply::finished, response, &Response::ready);
});
}
else
{
QNetworkReply* reply = postRequest("/AccessManager/getAccessGroupsUpdated", makeTimeStampJson(time));
connect(reply, &QNetworkReply::finished, response, &Response::ready);
}
return response;
}
Response* RequestManager::getAccessGroupsDeleted(uint64_t time)
{
auto response = new Response;
if (!loginStatus){
login(host, user, password);
connect(this, &RequestManager::successLogin, [=](){
auto subjectReply = postRequest("/AccessManager/getAccessGroupsDeleted", makeTimeStampJson(time));
response->reply = subjectReply;
connect(subjectReply, &QNetworkReply::finished, response, &Response::ready);
});
}
else
{
QNetworkReply* reply = postRequest("/AccessManager/getAccessGroupsDeleted", makeTimeStampJson(time));
connect(reply, &QNetworkReply::finished, response, &Response::ready);
}
return response;
} }
Response* RequestManager::getAccessGroupMembership() Response* RequestManager::getAccessGroupMembership()
{ {
auto response = new Response;
if (!loginStatus){
login(host, user, password);
connect(this, &RequestManager::successLogin, [=](){
auto subjectReply = getRequest("/AccessManager/getAccessGroupMembership");
response->reply = subjectReply;
connect(subjectReply, &QNetworkReply::finished, response, &Response::ready);
});
} }
else
Response* RequestManager::getAccessGroupMembershipUpdated(uint64_t)
{ {
QNetworkReply* reply = getRequest("/AccessManager/getAccessGroupMembership");
connect(reply, &QNetworkReply::finished, response, &Response::ready);
} }
Response* RequestManager::getAccessGroupMembershipDeleted(uint64_t) return response;
}
Response* RequestManager::getAccessGroupMembershipUpdated(uint64_t time)
{ {
auto response = new Response;
if (!loginStatus){
login(host, user, password);
connect(this, &RequestManager::successLogin, [=](){
auto subjectReply = postRequest("/AccessManager/getAccessGroupMembershipUpdated", makeTimeStampJson(time));
response->reply = subjectReply;
connect(subjectReply, &QNetworkReply::finished, response, &Response::ready);
});
}
else
{
QNetworkReply* reply = postRequest("/AccessManager/getAccessGroupMembershipUpdated", makeTimeStampJson(time));
connect(reply, &QNetworkReply::finished, response, &Response::ready);
}
return response;
}
Response* RequestManager::getAccessGroupMembershipDeleted(uint64_t time)
{
auto response = new Response;
if (!loginStatus){
login(host, user, password);
connect(this, &RequestManager::successLogin, [=](){
auto subjectReply = postRequest("/AccessManager/getAccessGroupMembershipDeleted", makeTimeStampJson(time));
response->reply = subjectReply;
connect(subjectReply, &QNetworkReply::finished, response, &Response::ready);
});
}
else
{
QNetworkReply* reply = postRequest("/AccessManager/getAccessGroupMembershipDeleted", makeTimeStampJson(time));
connect(reply, &QNetworkReply::finished, response, &Response::ready);
}
return response;
} }

View File

@ -19,6 +19,7 @@
#include <QPointer> #include <QPointer>
#include <QDir> #include <QDir>
#include <QSslError> #include <QSslError>
#include <QPair>
#include "response.h" #include "response.h"
@ -33,18 +34,18 @@ public:
Response* getTokens(); Response* getTokens();
Response* getTokenSubject(); Response* getTokenSubject();
Response* getSubjectsUpdated(uint64_t); Response* getSubjectsUpdated(uint64_t time);
Response* getSubjectsDeleted(uint64_t); Response* getSubjectsDeleted(uint64_t time);
Response* getTokensUpdated(uint64_t); Response* getTokensUpdated(uint64_t time);
Response* getTokensDeleted(uint64_t); Response* getTokensDeleted(uint64_t time);
Response* getAccessGroups(); Response* getAccessGroups();
Response* getAccessGroupsUpdated(uint64_t); Response* getAccessGroupsUpdated(uint64_t time);
Response* getAccessGroupsDeleted(uint64_t); Response* getAccessGroupsDeleted(uint64_t time);
Response* getAccessGroupMembership(); Response* getAccessGroupMembership();
Response* getAccessGroupMembershipUpdated(uint64_t); Response* getAccessGroupMembershipUpdated(uint64_t time);
Response* getAccessGroupMembershipDeleted(uint64_t); Response* getAccessGroupMembershipDeleted(uint64_t time);
void login(QString endpoint, QString username, QString password); //I want it private, but unittest??? void login(QString endpoint, QString username, QString password); //I want it private, but unittest???
@ -53,10 +54,12 @@ public:
private: private:
QNetworkReply* getRequest(QString endpoint); QNetworkReply* getRequest(QString endpoint);
QNetworkReply* postRequest(QString endpoints, QByteArray json);
QString getFromJson(QString json, const QString &member); QString getFromJson(QString json, const QString &member);
QString encryptedPassword(QString password); QString encryptedPassword(QString password);
QString getLoginHeader(QString username, QString hash); QString getLoginHeader(QString username, QString hash);
void prepareAuthHeader(); void prepareAuthHeader();
QByteArray makeTimeStampJson(uint64_t);
private slots: private slots:
void onSSLError(QNetworkReply *reply, const QList<QSslError> &errors); void onSSLError(QNetworkReply *reply, const QList<QSslError> &errors);

View File

@ -14,7 +14,7 @@ public:
QNetworkReply *reply = nullptr; QNetworkReply *reply = nullptr;
signals: signals:
void finished(); void ready();
public slots: public slots:

View File

@ -66,6 +66,146 @@ void UnitTest::getTokenSubject()
QVERIFY(!json.isEmpty()); QVERIFY(!json.isEmpty());
} }
void UnitTest::getSubjectsUpdated()
{
Response* response = new Response;
RequestManager* testAccess = new RequestManager();
QSignalSpy spy(testAccess, SIGNAL(responseReady()));
response = testAccess->getSubjectsUpdated(1568646217767);
QCOMPARE(spy.count(), 0);
spy.wait(10000);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->reply->readAll();
QVERIFY(!json.isEmpty());
}
void UnitTest::getSubjectsDeleted()
{
Response* response = new Response;
RequestManager* testAccess = new RequestManager();
QSignalSpy spy(testAccess, SIGNAL(responseReady()));
response = testAccess->getSubjectsDeleted(1568646217767);
QCOMPARE(spy.count(), 0);
spy.wait(10000);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->reply->readAll();
QVERIFY(!json.isEmpty());
}
void UnitTest::getTokensUpdated()
{
Response* response = new Response;
RequestManager* testAccess = new RequestManager();
QSignalSpy spy(testAccess, SIGNAL(responseReady()));
response = testAccess->getTokensUpdated(1570109859681);
QCOMPARE(spy.count(), 0);
spy.wait(10000);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->reply->readAll();
QVERIFY(!json.isEmpty());
}
void UnitTest::getTokensDeleted()
{
Response* response = new Response;
RequestManager* testAccess = new RequestManager();
QSignalSpy spy(testAccess, SIGNAL(responseReady()));
response = testAccess->getTokensDeleted(1570109859681);
QCOMPARE(spy.count(), 0);
spy.wait(10000);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->reply->readAll();
QVERIFY(!json.isEmpty());
}
void UnitTest::getAccessGroups()
{
Response* response = new Response;
RequestManager* testAccess = new RequestManager();
QSignalSpy spy(testAccess, SIGNAL(responseReady()));
response = testAccess->getAccessGroups();
QCOMPARE(spy.count(), 0);
spy.wait(10000);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->reply->readAll();
QVERIFY(!json.isEmpty());
}
void UnitTest::getAccessGroupsUpdated()
{
Response* response = new Response;
RequestManager* testAccess = new RequestManager();
QSignalSpy spy(testAccess, SIGNAL(responseReady()));
response = testAccess->getAccessGroupsUpdated(1568646217767);
QCOMPARE(spy.count(), 0);
spy.wait(10000);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->reply->readAll();
QVERIFY(!json.isEmpty());
}
void UnitTest::getAccessGroupsDeleted()
{
Response* response = new Response;
RequestManager* testAccess = new RequestManager();
QSignalSpy spy(testAccess, SIGNAL(responseReady()));
response = testAccess->getAccessGroupsDeleted(1568646217767);
QCOMPARE(spy.count(), 0);
spy.wait(10000);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->reply->readAll();
QVERIFY(!json.isEmpty());
}
void UnitTest::getAccessGroupMembership()
{
Response* response = new Response;
RequestManager* testAccess = new RequestManager();
QSignalSpy spy(testAccess, SIGNAL(responseReady()));
response = testAccess->getAccessGroupMembership();
QCOMPARE(spy.count(), 0);
spy.wait(10000);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->reply->readAll();
QVERIFY(!json.isEmpty());
}
void UnitTest::getAccessGroupMembershipUpdated()
{
Response* response = new Response;
RequestManager* testAccess = new RequestManager();
QSignalSpy spy(testAccess, SIGNAL(responseReady()));
response = testAccess->getAccessGroupMembershipUpdated(1568646217767);
QCOMPARE(spy.count(), 0);
spy.wait(10000);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->reply->readAll();
QVERIFY(!json.isEmpty());
}
void UnitTest::getAccessGroupMembershipDeleted()
{
Response* response = new Response;
RequestManager* testAccess = new RequestManager();
QSignalSpy spy(testAccess, SIGNAL(responseReady()));
response = testAccess->getAccessGroupMembershipDeleted(1568646217767);
QCOMPARE(spy.count(), 0);
spy.wait(10000);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->reply->readAll();
QVERIFY(!json.isEmpty());
}
void UnitTest::subjectJSONParser() void UnitTest::subjectJSONParser()
{ {
/* /*
@ -118,48 +258,49 @@ void UnitTest::connectToDB()
qDebug() << db->getTestMessage(1); qDebug() << db->getTestMessage(1);
QVERIFY(true); QVERIFY(true);
QCOMPARE(db->getTestMessage(1), QStringLiteral("Hello world")); QCOMPARE(db->getTestMessage(1), QStringLiteral("Hello world"));
db->createTestRecord("Now it's diffrent"); QCOMPARE(db->getTestMessage(db->createTestRecord("Now it's diffrent")), QStringLiteral("Does it work?"));
QCOMPARE(db->getTestMessage(2), QStringLiteral("Does it work?"));
} }
//void UnitTest::debugConnection() /*
//{ void UnitTest::debugConnection()
// QSslSocket ssl;// = new QSslSocket(); {
// ssl.connectToHostEncrypted("192.168.1.3", 8443); QSslSocket ssl;// = new QSslSocket();
// ssl.ignoreSslErrors(); ssl.connectToHostEncrypted("192.168.1.3", 8443);
// if (!ssl.waitForEncrypted()) ssl.ignoreSslErrors();
// { if (!ssl.waitForEncrypted())
// qDebug() << ssl.errorString(); {
// } qDebug() << ssl.errorString();
// QString tmp = "POST /AaaManager/authSession HTTP/1.1\r\nHost: 192.168.1.3:8443\r\nAuthorization: Basic c3BhY2V0aTpFN0ZFQTA3REJDODJGQjlCQTM0QjJFNDUzRTJFRkU4OUYwNTgzRTcxODc1NDM1MDdFRjExRTg0NzI2MDcxRkU0Mjg0NDUzNzJGMkU0NkI0NTVFQjBDNzk3NDdDNTFFMzYyRjQwM0NFMzk0NzNBMkE4QzJERkEwQ0U1Qzk4MjZDMA==\r\nUser-Agent: curl/7.65.3\r\nAccept: */*\r\nContent-Type: application/json\r\nContent-Length: 164\r\n\r\n{\"password\":\"E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0\",\"username\":\"spaceti\"}"; }
// qDebug().noquote() << tmp.toUtf8(); QString tmp = "POST /AaaManager/authSession HTTP/1.1\r\nHost: 192.168.1.3:8443\r\nAuthorization: Basic c3BhY2V0aTpFN0ZFQTA3REJDODJGQjlCQTM0QjJFNDUzRTJFRkU4OUYwNTgzRTcxODc1NDM1MDdFRjExRTg0NzI2MDcxRkU0Mjg0NDUzNzJGMkU0NkI0NTVFQjBDNzk3NDdDNTFFMzYyRjQwM0NFMzk0NzNBMkE4QzJERkEwQ0U1Qzk4MjZDMA==\r\nUser-Agent: curl/7.65.3\r\nAccept: **\r\nContent-Type: application/json\r\nContent-Length: 164\r\n\r\n{\"password\":\"E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0\",\"username\":\"spaceti\"}";
// ssl.write(tmp.toUtf8()); qDebug().noquote() << tmp.toUtf8();
// QString data; ssl.write(tmp.toUtf8());
// while (ssl.waitForReadyRead() && data.isEmpty()) QString data;
// { while (ssl.waitForReadyRead() && data.isEmpty())
// data.append(ssl.readAll().data()); {
// } data.append(ssl.readAll().data());
// qDebug().noquote() << data; }
// int index = data.lastIndexOf("id"); qDebug().noquote() << data;
// QString tkn = data.mid( index + 5, 36); int index = data.lastIndexOf("id");
// tkn = tkn + ":"; QString tkn = data.mid( index + 5, 36);
// qDebug() << "parsed token : " <<tkn; tkn = tkn + ":";
// tmp = "POST /SubjectManager/getSubjects HTTP/1.1\r\nHost: 192.168.1.3:8443\r\nAuthorization: Basic " + tkn.toUtf8().toBase64() + "\r\nUser-Agent: curl/7.65.3\r\nAccept: */*\r\n\r\n"; qDebug() << "parsed token : " <<tkn;
// QFile file("output1234.txt"); tmp = "POST /SubjectManager/getSubjects HTTP/1.1\r\nHost: 192.168.1.3:8443\r\nAuthorization: Basic " + tkn.toUtf8().toBase64() + "\r\nUser-Agent: curl/7.65.3\r\nAccept: **\r\n\r\n";
// file.open(QIODevice::ReadWrite); QFile file("output1234.txt");
// QTextStream st(&file); file.open(QIODevice::ReadWrite);
// st << tmp; QTextStream st(&file);
// file.close(); st << tmp;
// qDebug().noquote() << tmp.toUtf8(); file.close();
// ssl.write(tmp.toUtf8()); qDebug().noquote() << tmp.toUtf8();
// while (ssl.waitForReadyRead()) ssl.write(tmp.toUtf8());
// { while (ssl.waitForReadyRead())
// qDebug() << ssl.readAll().data(); {
// } qDebug() << ssl.readAll().data();
// qDebug() << ssl.errorString(); }
qDebug() << ssl.errorString();
// QVERIFY(true); QVERIFY(true);
//} }
*/
void UnitTest::saveDataToDB() void UnitTest::saveDataToDB()
{ {

View File

@ -21,6 +21,16 @@ private slots:
void getSubjects(); // /SubjectManager/getSubjects void getSubjects(); // /SubjectManager/getSubjects
void getTokens(); // /TokenManager/getTokens void getTokens(); // /TokenManager/getTokens
void getTokenSubject(); // /OpenManager/getTokenSubject void getTokenSubject(); // /OpenManager/getTokenSubject
void getSubjectsUpdated();
void getSubjectsDeleted();
void getTokensUpdated();
void getTokensDeleted();
void getAccessGroups();
void getAccessGroupsUpdated();
void getAccessGroupsDeleted();
void getAccessGroupMembership();
void getAccessGroupMembershipUpdated();
void getAccessGroupMembershipDeleted();
void subjectJSONParser(); void subjectJSONParser();
void tokenJSONParser(); void tokenJSONParser();
void connectToDB(); void connectToDB();
@ -28,6 +38,7 @@ private slots:
void saveDataToDB(); void saveDataToDB();
void getUuid(); void getUuid();
private: private:
//QString host = "http://localhost:8080"; //colnod server (ssh -L 8080:192.168.254.11:8443 penta-master) //QString host = "http://localhost:8080"; //colnod server (ssh -L 8080:192.168.254.11:8443 penta-master)
QString host = "https://192.168.1.3:8443"; //local testing server QString host = "https://192.168.1.3:8443"; //local testing server