Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/core/inspectdata.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
#define INSPECTDATA_H

#include <QByteArray>
#include <QVariant>
#include "variant.h"

class InspectData
{
Expand All @@ -33,7 +33,7 @@ class InspectData
QByteArray sharingKey;
QByteArray sid;
QHash<QByteArray, QByteArray> lastIds;
QVariant userData;
Variant userData;

InspectData() :
doProxy(false)
Expand Down
11 changes: 6 additions & 5 deletions src/core/jwt.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
#include <QFileInfo>
#include <QJsonDocument>
#include <QJsonObject>
#include "variant.h"

namespace Jwt {

Expand Down Expand Up @@ -205,7 +206,7 @@ QByteArray decodeWithAlgorithm(Algorithm alg, const QByteArray &token, const Dec
return out;
}

QByteArray encode(const QVariant &claim, const EncodingKey &key)
QByteArray encode(const Variant &claim, const EncodingKey &key)
{
Algorithm alg;
switch(key.type())
Expand All @@ -223,25 +224,25 @@ QByteArray encode(const QVariant &claim, const EncodingKey &key)
return encodeWithAlgorithm(alg, claimJson, key);
}

QVariant decode(const QByteArray &token, const DecodingKey &key)
Variant decode(const QByteArray &token, const DecodingKey &key)
{
Algorithm alg;
switch(key.type())
{
case Jwt::KeyType::Secret: alg = Jwt::HS256; break;
case Jwt::KeyType::Ec: alg = Jwt::ES256; break;
case Jwt::KeyType::Rsa: alg = Jwt::RS256; break;
default: return QVariant();
default: return Variant();
}

QByteArray claimJson = decodeWithAlgorithm(alg, token, key);
if(claimJson.isEmpty())
return QVariant();
return Variant();

QJsonParseError error;
QJsonDocument doc = QJsonDocument::fromJson(claimJson, &error);
if(error.error != QJsonParseError::NoError || !doc.isObject())
return QVariant();
return Variant();

return doc.object().toVariantMap();
}
Expand Down
6 changes: 3 additions & 3 deletions src/core/jwt.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
#define JWT_H

#include <QByteArray>
#include <QVariant>
#include "variant.h"
#include <QSharedData>
#include <QDir>
#include "rust/bindings.h"
Expand Down Expand Up @@ -109,8 +109,8 @@ QByteArray encodeWithAlgorithm(Algorithm alg, const QByteArray &claim, const Enc
// Returns claim, null on error
QByteArray decodeWithAlgorithm(Algorithm alg, const QByteArray &token, const DecodingKey &key);

QByteArray encode(const QVariant &claim, const EncodingKey &key);
QVariant decode(const QByteArray &token, const DecodingKey &key);
QByteArray encode(const Variant &claim, const EncodingKey &key);
Variant decode(const QByteArray &token, const DecodingKey &key);

}

Expand Down
19 changes: 10 additions & 9 deletions src/core/jwttest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include <QJsonDocument>
#include <QJsonObject>
#include "qtcompat.h"
#include "variant.h"
#include "jwt.h"

static const char *test_ec_private_key_pem =
Expand Down Expand Up @@ -83,9 +84,9 @@ static const char *test_rsa_public_key_pem =

static void validToken()
{
QVariant vclaim = Jwt::decode("eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJmb28iOiAiYmFyIn0.oBia0Fph39FwQWv0TS7Disg4qa0aFa8qpMaYDrIXZqs", Jwt::DecodingKey::fromSecret("secret"));
Variant vclaim = Jwt::decode("eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJmb28iOiAiYmFyIn0.oBia0Fph39FwQWv0TS7Disg4qa0aFa8qpMaYDrIXZqs", Jwt::DecodingKey::fromSecret("secret"));
TEST_ASSERT(typeId(vclaim) == QMetaType::QVariantMap);
QVariantMap claim = vclaim.toMap();
VariantMap claim = vclaim.toMap();
TEST_ASSERT(claim.value("foo") == "bar");
}

Expand All @@ -96,15 +97,15 @@ static void validTokenBinaryKey()
key += 0x61;
key += 0x80;
key += 0xfe;
QVariant vclaim = Jwt::decode("eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJmb28iOiAiYmFyIn0.-eLxyGEITnd6IP4WvGJx9CmIOt--Qcs3LB6wblJ7KXI", Jwt::DecodingKey::fromSecret(key));
Variant vclaim = Jwt::decode("eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJmb28iOiAiYmFyIn0.-eLxyGEITnd6IP4WvGJx9CmIOt--Qcs3LB6wblJ7KXI", Jwt::DecodingKey::fromSecret(key));
TEST_ASSERT(typeId(vclaim) == QMetaType::QVariantMap);
QVariantMap claim = vclaim.toMap();
VariantMap claim = vclaim.toMap();
TEST_ASSERT(claim.value("foo") == "bar");
}

static void invalidKey()
{
QVariant vclaim = Jwt::decode("eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJmb28iOiAiYmFyIn0.oBia0Fph39FwQWv0TS7Disg4qa0aFa8qpMaYDrIXZqs", Jwt::DecodingKey::fromSecret("wrong"));
Variant vclaim = Jwt::decode("eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJmb28iOiAiYmFyIn0.oBia0Fph39FwQWv0TS7Disg4qa0aFa8qpMaYDrIXZqs", Jwt::DecodingKey::fromSecret("wrong"));
TEST_ASSERT(vclaim.isNull());
}

Expand All @@ -118,7 +119,7 @@ static void es256EncodeDecode()
TEST_ASSERT(!publicKey.isNull());
TEST_ASSERT_EQ(publicKey.type(), Jwt::KeyType::Ec);

QVariantMap claim;
VariantMap claim;
claim["iss"] = "nobody";

QByteArray claimJson = QJsonDocument(QJsonObject::fromVariantMap(claim)).toJson(QJsonDocument::Compact);
Expand All @@ -135,7 +136,7 @@ static void es256EncodeDecode()
TEST_ASSERT(error.error == QJsonParseError::NoError);
TEST_ASSERT(doc.isObject());

QVariantMap result = doc.object().toVariantMap();
VariantMap result = doc.object().toVariantMap();
TEST_ASSERT_EQ(result["iss"], "nobody");
}

Expand All @@ -149,7 +150,7 @@ static void rs256EncodeDecode()
TEST_ASSERT(!publicKey.isNull());
TEST_ASSERT_EQ(publicKey.type(), Jwt::KeyType::Rsa);

QVariantMap claim;
VariantMap claim;
claim["iss"] = "nobody";

QByteArray claimJson = QJsonDocument(QJsonObject::fromVariantMap(claim)).toJson(QJsonDocument::Compact);
Expand All @@ -166,7 +167,7 @@ static void rs256EncodeDecode()
TEST_ASSERT(error.error == QJsonParseError::NoError);
TEST_ASSERT(doc.isObject());

QVariantMap result = doc.object().toVariantMap();
VariantMap result = doc.object().toVariantMap();
TEST_ASSERT_EQ(result["iss"], "nobody");
}

Expand Down
19 changes: 10 additions & 9 deletions src/core/logutil.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
#include <stdarg.h>
#include "qtcompat.h"
#include "tnetstring.h"
#include "variant.h"
#include "log.h"

#define MAX_DATA_LENGTH 1000
Expand Down Expand Up @@ -66,7 +67,7 @@ static QString makeLastIdsStr(const HttpHeaders &headers)
return out;
}

static void logPacket(int level, const QString &message, const QVariant &data = QVariant(), int dataMax = -1, const QByteArray &content = QByteArray(), int contentMax = -1)
static void logPacket(int level, const QString &message, const Variant &data = Variant(), int dataMax = -1, const QByteArray &content = QByteArray(), int contentMax = -1)
{
QString out = message;

Expand All @@ -79,31 +80,31 @@ static void logPacket(int level, const QString &message, const QVariant &data =
{
out += ' ' + QString::number(content.size()) + ' ';
QByteArray buf = trim(content, contentMax);
out += TnetString::variantToString(QVariant(buf), -1);
out += TnetString::variantToString(Variant(buf), -1);
}

log(level, "%s", qPrintable(out));
}

static void logPacket(int level, const QVariant &data, const char *fmt, va_list ap)
static void logPacket(int level, const Variant &data, const char *fmt, va_list ap)
{
logPacket(level, QString::vasprintf(fmt, ap), data, MAX_DATA_LENGTH);
}

static void logPacket(int level, const QByteArray &content, const char *fmt, va_list ap)
{
logPacket(level, QString::vasprintf(fmt, ap), QVariant(), -1, content, MAX_CONTENT_LENGTH);
logPacket(level, QString::vasprintf(fmt, ap), Variant(), -1, content, MAX_CONTENT_LENGTH);
}

static void logPacket(int level, const QVariant &data, const QString &contentField, const char *fmt, va_list ap)
static void logPacket(int level, const Variant &data, const QString &contentField, const char *fmt, va_list ap)
{
QVariant meta;
Variant meta;
QByteArray content;

if(typeId(data) == QMetaType::QVariantHash)
{
// Extract content. Meta is the remaining data
QVariantHash hdata = data.toHash();
VariantHash hdata = data.toHash();
content = hdata.value(contentField).toByteArray();
hdata.remove(contentField);
meta = hdata;
Expand All @@ -118,7 +119,7 @@ static void logPacket(int level, const QVariant &data, const QString &contentFie
logPacket(level, QString::vasprintf(fmt, ap), meta, MAX_DATA_LENGTH, content, MAX_CONTENT_LENGTH);
}

void logVariant(int level, const QVariant &data, const char *fmt, ...)
void logVariant(int level, const Variant &data, const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
Expand All @@ -134,7 +135,7 @@ void logByteArray(int level, const QByteArray &content, const char *fmt, ...)
va_end(ap);
}

void logVariantWithContent(int level, const QVariant &data, const QString &contentField, const char *fmt, ...)
void logVariantWithContent(int level, const Variant &data, const QString &contentField, const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
Expand Down
5 changes: 3 additions & 2 deletions src/core/logutil.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@

#include <QHostAddress>
#include "log.h"
#include "variant.h"
#include "packet/httprequestdata.h"
#include "packet/httpresponsedata.h"

Expand Down Expand Up @@ -88,9 +89,9 @@ class RouteInfo
}
};

void logVariant(int level, const QVariant &data, const char *fmt, ...);
void logVariant(int level, const Variant &data, const char *fmt, ...);
void logByteArray(int level, const QByteArray &content, const char *fmt, ...);
void logVariantWithContent(int level, const QVariant &data, const QString &contentField, const char *fmt, ...);
void logVariantWithContent(int level, const Variant &data, const QString &contentField, const char *fmt, ...);
void logRequest(int level, const RequestData &data, const Config &config = Config());
void logForRoute(const RouteInfo &routeInfo, const char *fmt, ...);

Expand Down
Loading
Loading