From d991de5d301c7bab15d504c9a36bd3de781e36a7 Mon Sep 17 00:00:00 2001 From: iejMac <61431446+iejMac@users.noreply.github.com> Date: Mon, 26 Apr 2021 17:25:22 -0700 Subject: [PATCH] CommaApi: use auth.py for request authentication when on PC (#20755) * CommaApi: use auth.py for request authentication when on PC * whitespace * only when replay * nicer way to do this * tabs * use bool * tabs * tabs * prefer this to just be state * initialize with stdString * tabs * include order * fix order + ifdef fix * whitespace' old-commit-hash: a337097b5ee515560e9f1a804b997753767d3c9a --- selfdrive/ui/qt/api.cc | 12 ++++++++++-- selfdrive/ui/qt/api.hpp | 5 +++-- selfdrive/ui/replay/replay.cc | 7 ++++++- selfdrive/ui/replay/replay.hpp | 2 ++ 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/selfdrive/ui/qt/api.cc b/selfdrive/ui/qt/api.cc index b9a5368b2a..1c997874e3 100644 --- a/selfdrive/ui/qt/api.cc +++ b/selfdrive/ui/qt/api.cc @@ -72,7 +72,7 @@ QString CommaApi::create_jwt(QVector> payloads, int e } -HttpRequest::HttpRequest(QObject *parent, QString requestURL, const QString &cache_key) : cache_key(cache_key), QObject(parent) { +HttpRequest::HttpRequest(QObject *parent, QString requestURL, const QString &cache_key, bool create_jwt_) : cache_key(cache_key), create_jwt(create_jwt_), QObject(parent) { networkAccessManager = new QNetworkAccessManager(this); reply = NULL; @@ -91,7 +91,15 @@ HttpRequest::HttpRequest(QObject *parent, QString requestURL, const QString &cac } void HttpRequest::sendRequest(QString requestURL){ - QString token = CommaApi::create_jwt(); + QString token; + if(create_jwt) { + token = CommaApi::create_jwt(); + } else { + QString token_json = QString::fromStdString(util::read_file(util::getenv_default("HOME", "/.comma/auth.json", "/.comma/auth.json"))); + QJsonDocument json_d = QJsonDocument::fromJson(token_json.toUtf8()); + token = json_d["access_token"].toString(); + } + QNetworkRequest request; request.setUrl(QUrl(requestURL)); request.setRawHeader(QByteArray("Authorization"), ("JWT " + token).toUtf8()); diff --git a/selfdrive/ui/qt/api.hpp b/selfdrive/ui/qt/api.hpp index 5a01946c80..347e12f784 100644 --- a/selfdrive/ui/qt/api.hpp +++ b/selfdrive/ui/qt/api.hpp @@ -19,7 +19,7 @@ class CommaApi : public QObject { public: static QByteArray rsa_sign(QByteArray data); - static QString create_jwt(QVector> payloads = {}, int expiry=3600); + static QString create_jwt(QVector> payloads = {}, int expiry = 3600); private: QNetworkAccessManager* networkAccessManager; @@ -33,7 +33,7 @@ class HttpRequest : public QObject { Q_OBJECT public: - explicit HttpRequest(QObject* parent, QString requestURL, const QString &cache_key = ""); + explicit HttpRequest(QObject* parent, QString requestURL, const QString &cache_key = "", bool create_jwt_ = true); QNetworkReply *reply; void sendRequest(QString requestURL); @@ -41,6 +41,7 @@ private: QNetworkAccessManager *networkAccessManager; QTimer *networkTimer; QString cache_key; + bool create_jwt; private slots: void requestTimeout(); diff --git a/selfdrive/ui/replay/replay.cc b/selfdrive/ui/replay/replay.cc index 8c952ee6b0..7b60d6552a 100644 --- a/selfdrive/ui/replay/replay.cc +++ b/selfdrive/ui/replay/replay.cc @@ -3,8 +3,13 @@ Replay::Replay(QString route_, int seek) : route(route_) { unlogger = new Unlogger(&events, &events_lock, &frs, seek); current_segment = 0; + bool create_jwt = true; - http = new HttpRequest(this, "https://api.commadotai.com/v1/route/" + route + "/files"); +#if !defined(QCOM) && !defined(QCOM2) + create_jwt = false; +#endif + + http = new HttpRequest(this, "https://api.commadotai.com/v1/route/" + route + "/files", "", create_jwt); QObject::connect(http, SIGNAL(receivedResponse(QString)), this, SLOT(parseResponse(QString))); } diff --git a/selfdrive/ui/replay/replay.hpp b/selfdrive/ui/replay/replay.hpp index e6d54ac362..28f6d55f97 100644 --- a/selfdrive/ui/replay/replay.hpp +++ b/selfdrive/ui/replay/replay.hpp @@ -14,6 +14,8 @@ #include "FrameReader.hpp" #include "visionipc_server.h" +#include "common/util.h" + class Replay : public QObject { Q_OBJECT