added support for the updated api
This commit is contained in:
parent
aee82282ac
commit
3605f62feb
3 changed files with 35 additions and 46 deletions
|
@ -80,11 +80,6 @@ namespace amnezia
|
||||||
constexpr char awg[] = "awg";
|
constexpr char awg[] = "awg";
|
||||||
|
|
||||||
constexpr char configVersion[] = "config_version";
|
constexpr char configVersion[] = "config_version";
|
||||||
constexpr char apiEdnpoint[] = "api_endpoint";
|
|
||||||
constexpr char serviceTypeId[] = "service_type_id";
|
|
||||||
constexpr char accessToken[] = "access_token";
|
|
||||||
constexpr char certificate[] = "certificate";
|
|
||||||
constexpr char publicKey[] = "public_key";
|
|
||||||
|
|
||||||
constexpr char splitTunnelSites[] = "splitTunnelSites";
|
constexpr char splitTunnelSites[] = "splitTunnelSites";
|
||||||
constexpr char splitTunnelType[] = "splitTunnelType";
|
constexpr char splitTunnelType[] = "splitTunnelType";
|
||||||
|
|
|
@ -6,56 +6,49 @@
|
||||||
|
|
||||||
#include "configurators/openvpn_configurator.h"
|
#include "configurators/openvpn_configurator.h"
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
namespace configKey {
|
||||||
|
constexpr char cloak[] = "cloak";
|
||||||
|
|
||||||
|
constexpr char apiEdnpoint[] = "api_endpoint";
|
||||||
|
constexpr char accessToken[] = "api_key";
|
||||||
|
constexpr char certificate[] = "certificate";
|
||||||
|
constexpr char publicKey[] = "public_key";
|
||||||
|
constexpr char protocol[] = "protocol";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
CloudController::CloudController(const QSharedPointer<ServersModel> &serversModel,
|
CloudController::CloudController(const QSharedPointer<ServersModel> &serversModel,
|
||||||
const QSharedPointer<ContainersModel> &containersModel, QObject *parent)
|
const QSharedPointer<ContainersModel> &containersModel, QObject *parent)
|
||||||
: QObject(parent), m_serversModel(serversModel), m_containersModel(containersModel)
|
: QObject(parent), m_serversModel(serversModel), m_containersModel(containersModel)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CloudController::genPublicKey(ServiceTypeId serviceTypeId)
|
QString CloudController::genPublicKey(const QString &protocol)
|
||||||
{
|
{
|
||||||
switch (serviceTypeId)
|
if (protocol == configKey::cloak) {
|
||||||
{
|
return ".";
|
||||||
case ServiceTypeId::AmneziaFreeRuWG: return ".";
|
|
||||||
case ServiceTypeId::AmneziaFreeRuCloak: return ".";
|
|
||||||
case ServiceTypeId::AmneziaFreeRuAWG: return ".";
|
|
||||||
case ServiceTypeId::AmneziaFreeRuReverseWG: return ".";
|
|
||||||
case ServiceTypeId::AmneziaFreeRuReverseCloak: return ".";
|
|
||||||
case ServiceTypeId::AmneziaFreeRuReverseAWG: return ".";
|
|
||||||
}
|
}
|
||||||
|
return QString();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CloudController::genCertificateRequest(ServiceTypeId serviceTypeId)
|
QString CloudController::genCertificateRequest(const QString &protocol)
|
||||||
{
|
{
|
||||||
switch (serviceTypeId)
|
if (protocol == configKey::cloak) {
|
||||||
{
|
m_certRequest = OpenVpnConfigurator::createCertRequest();
|
||||||
case ServiceTypeId::AmneziaFreeRuWG: return "";
|
return m_certRequest.request;
|
||||||
case ServiceTypeId::AmneziaFreeRuCloak: {
|
|
||||||
m_certRequest = OpenVpnConfigurator::createCertRequest();
|
|
||||||
return m_certRequest.request;
|
|
||||||
}
|
|
||||||
case ServiceTypeId::AmneziaFreeRuAWG: return "";
|
|
||||||
case ServiceTypeId::AmneziaFreeRuReverseWG: return "";
|
|
||||||
case ServiceTypeId::AmneziaFreeRuReverseCloak: return "";
|
|
||||||
case ServiceTypeId::AmneziaFreeRuReverseAWG: return "";
|
|
||||||
}
|
}
|
||||||
|
return QString();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CloudController::processCloudConfig(ServiceTypeId serviceTypeId, QString &config)
|
void CloudController::processCloudConfig(const QString &protocol, QString &config)
|
||||||
{
|
{
|
||||||
switch (serviceTypeId)
|
if (protocol == configKey::cloak) {
|
||||||
{
|
|
||||||
case ServiceTypeId::AmneziaFreeRuWG: return;
|
|
||||||
case ServiceTypeId::AmneziaFreeRuCloak: {
|
|
||||||
config.replace("<key>", "<key>\n");
|
config.replace("<key>", "<key>\n");
|
||||||
config.replace("$OPENVPN_PRIV_KEY", m_certRequest.privKey);
|
config.replace("$OPENVPN_PRIV_KEY", m_certRequest.privKey);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
case ServiceTypeId::AmneziaFreeRuAWG: return;
|
return;
|
||||||
case ServiceTypeId::AmneziaFreeRuReverseWG: return;
|
|
||||||
case ServiceTypeId::AmneziaFreeRuReverseCloak: return;
|
|
||||||
case ServiceTypeId::AmneziaFreeRuReverseAWG: return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CloudController::updateServerConfigFromCloud()
|
bool CloudController::updateServerConfigFromCloud()
|
||||||
|
@ -69,19 +62,19 @@ bool CloudController::updateServerConfigFromCloud()
|
||||||
|
|
||||||
QNetworkRequest request;
|
QNetworkRequest request;
|
||||||
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
|
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
|
||||||
QString endpoint = serverConfig.value(config_key::apiEdnpoint).toString();
|
request.setRawHeader("Authorization", "Api-Key " + serverConfig.value(configKey::accessToken).toString().toUtf8());
|
||||||
|
QString endpoint = serverConfig.value(configKey::apiEdnpoint).toString();
|
||||||
request.setUrl(endpoint.replace("https", "http")); // todo remove
|
request.setUrl(endpoint.replace("https", "http")); // todo remove
|
||||||
|
|
||||||
ServiceTypeId serviceTypeId = static_cast<ServiceTypeId>(serverConfig.value(config_key::serviceTypeId).toInt());
|
QString protocol = serverConfig.value(configKey::protocol).toString();
|
||||||
|
|
||||||
QJsonObject obj;
|
QJsonObject obj;
|
||||||
obj[config_key::serviceTypeId] = serviceTypeId;
|
|
||||||
obj[config_key::accessToken] = serverConfig.value(config_key::accessToken);
|
|
||||||
|
|
||||||
obj[config_key::publicKey] = genPublicKey(serviceTypeId);
|
obj[configKey::publicKey] = genPublicKey(protocol);
|
||||||
obj[config_key::certificate] = genCertificateRequest(serviceTypeId);
|
obj[configKey::certificate] = genCertificateRequest(protocol);
|
||||||
|
|
||||||
QByteArray requestBody = QJsonDocument(obj).toJson();
|
QByteArray requestBody = QJsonDocument(obj).toJson();
|
||||||
|
qDebug() << requestBody;
|
||||||
|
|
||||||
QScopedPointer<QNetworkReply> reply;
|
QScopedPointer<QNetworkReply> reply;
|
||||||
reply.reset(manager.post(request, requestBody));
|
reply.reset(manager.post(request, requestBody));
|
||||||
|
@ -103,7 +96,7 @@ bool CloudController::updateServerConfigFromCloud()
|
||||||
}
|
}
|
||||||
|
|
||||||
QString configStr = ba;
|
QString configStr = ba;
|
||||||
processCloudConfig(serviceTypeId, configStr);
|
processCloudConfig(protocol, configStr);
|
||||||
|
|
||||||
QJsonObject cloudConfig = QJsonDocument::fromJson(configStr.toUtf8()).object();
|
QJsonObject cloudConfig = QJsonDocument::fromJson(configStr.toUtf8()).object();
|
||||||
|
|
||||||
|
@ -117,6 +110,7 @@ bool CloudController::updateServerConfigFromCloud()
|
||||||
emit serverConfigUpdated();
|
emit serverConfigUpdated();
|
||||||
} else{
|
} else{
|
||||||
QString err = reply->errorString();
|
QString err = reply->errorString();
|
||||||
|
qDebug() << QString::fromUtf8(reply->readAll());;
|
||||||
qDebug() << reply->error();
|
qDebug() << reply->error();
|
||||||
qDebug() << err;
|
qDebug() << err;
|
||||||
qDebug() << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
|
qDebug() << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
|
||||||
|
|
|
@ -34,10 +34,10 @@ signals:
|
||||||
void serverConfigUpdated();
|
void serverConfigUpdated();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString genPublicKey(ServiceTypeId serviceTypeId);
|
QString genPublicKey(const QString &protocol);
|
||||||
QString genCertificateRequest(ServiceTypeId serviceTypeId);
|
QString genCertificateRequest(const QString &protocol);
|
||||||
|
|
||||||
void processCloudConfig(ServiceTypeId serviceTypeId, QString &config);
|
void processCloudConfig(const QString &protocol, QString &config);
|
||||||
|
|
||||||
QSharedPointer<ServersModel> m_serversModel;
|
QSharedPointer<ServersModel> m_serversModel;
|
||||||
QSharedPointer<ContainersModel> m_containersModel;
|
QSharedPointer<ContainersModel> m_containersModel;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue