AusweisApp2
Lade ...
Suche ...
Keine Treffer
NetworkManager.h
gehe zur Dokumentation dieser Datei
1
5/*
6 * \brief Wrapper around QNetworkAccessManager
7 */
8
9#pragma once
10
11#include "Env.h"
12#include "GlobalStatus.h"
13#include "LogHandler.h"
14
15#include <QAtomicInt>
16#include <QAuthenticator>
17#include <QDebug>
18#include <QNetworkAccessManager>
19#include <QNetworkProxy>
20#include <QNetworkReply>
21#include <QSsl>
22
23class test_NetworkManager;
24
25namespace governikus
26{
27
29 : public QObject
30{
31 Q_OBJECT
32 friend class Env;
33 friend class ::test_NetworkManager;
34
35 private:
36 static bool mLockProxy;
37
38 QNetworkAccessManager mNetAccessManager;
39 bool mApplicationExitInProgress;
40 QAtomicInt mOpenConnectionCount;
41 QSet<QByteArray> mUpdaterSessions;
42
43 bool prepareConnection(QNetworkRequest& pRequest);
44 [[nodiscard]] QSharedPointer<QNetworkReply> trackConnection(QNetworkReply* pResponse);
45 [[nodiscard]] QSharedPointer<QNetworkReply> processRequest(QNetworkRequest& pRequest,
46 const std::function<QSharedPointer<QNetworkReply>(QNetworkRequest&)>& pInvoke);
47 [[nodiscard]] QSharedPointer<QNetworkReply> processUpdaterRequest(QNetworkRequest& pRequest,
48 const std::function<QSharedPointer<QNetworkReply>(QNetworkRequest&)>& pInvoke);
49
50 [[nodiscard]] QString getUserAgentHeader() const;
51
52 public Q_SLOTS:
53 void onShutdown();
54 void onProxyChanged();
55
56 protected:
58 ~NetworkManager() override = default;
59
60 public:
61 enum class NetworkError
62 {
64 TimeOut,
68 };
69 Q_ENUM(NetworkError)
70
71 static void setApplicationProxyFactory();
72 static void lockProxy(bool pLocked)
73 {
74 mLockProxy = pLocked;
75 }
76
77
78 [[nodiscard]] static bool isLoggingAllowed(const QSharedPointer<const QNetworkReply>& pReply);
79 [[nodiscard]] static int getLoggedStatusCode(const QSharedPointer<const QNetworkReply>& pReply, const MessageLogger& pLogger);
80 [[nodiscard]] static NetworkError toNetworkError(const QSharedPointer<const QNetworkReply>& pNetworkReply);
81 [[nodiscard]] static GlobalStatus toTrustedChannelStatus(const QSharedPointer<const QNetworkReply>& pNetworkReply);
82 [[nodiscard]] static GlobalStatus toStatus(const QSharedPointer<const QNetworkReply>& pNetworkReply);
83 [[nodiscard]] static QString getTlsVersionString(QSsl::SslProtocol pProtocol);
84 [[nodiscard]] static QByteArray getStatusMessage(int pStatus);
85 [[nodiscard]] static QString getFormattedStatusMessage(int pStatus);
86
87 virtual void clearConnections();
88 [[nodiscard]] virtual QSharedPointer<QNetworkReply> paos(QNetworkRequest& pRequest,
89 const QByteArray& pNamespace,
90 const QByteArray& pData,
91 bool pUsePsk = true,
92 const QByteArray& pSslSession = QByteArray());
93 [[nodiscard]] virtual QSharedPointer<QNetworkReply> get(QNetworkRequest& pRequest);
94 [[nodiscard]] virtual QSharedPointer<QNetworkReply> post(QNetworkRequest& pRequest,
95 const QByteArray& pData);
96 [[nodiscard]] virtual QSharedPointer<QNetworkReply> deleteResource(QNetworkRequest& pRequest);
97
98 [[nodiscard]] QSharedPointer<QNetworkReply> getAsUpdater(QNetworkRequest& pRequest);
99 [[nodiscard]] QSharedPointer<QNetworkReply> postAsUpdater(QNetworkRequest& pRequest,
100 const QByteArray& pData);
101
102 [[nodiscard]] int getOpenConnectionCount() const;
103
104 Q_SIGNALS:
105 void fireProxyAuthenticationRequired(const QNetworkProxy& pProxy, QAuthenticator* pAuthenticator);
107};
108
109} // namespace governikus
110
111QDebug operator <<(QDebug pDbg, QSsl::SslProtocol pProtocol);
QDebug operator<<(QDebug pDbg, QSsl::SslProtocol pProtocol)
Definition: Env.h:46
Definition: GlobalStatus.h:22
Definition: LogHandler.h:35
Definition: NetworkManager.h:30
QSharedPointer< QNetworkReply > getAsUpdater(QNetworkRequest &pRequest)
Definition: NetworkManager.cpp:102
virtual QSharedPointer< QNetworkReply > get(QNetworkRequest &pRequest)
Definition: NetworkManager.cpp:75
virtual QSharedPointer< QNetworkReply > paos(QNetworkRequest &pRequest, const QByteArray &pNamespace, const QByteArray &pData, bool pUsePsk=true, const QByteArray &pSslSession=QByteArray())
Definition: NetworkManager.cpp:54
NetworkError
Definition: NetworkManager.h:62
void onShutdown()
Definition: NetworkManager.cpp:201
virtual QSharedPointer< QNetworkReply > post(QNetworkRequest &pRequest, const QByteArray &pData)
Definition: NetworkManager.cpp:83
virtual QSharedPointer< QNetworkReply > deleteResource(QNetworkRequest &pRequest)
Definition: NetworkManager.cpp:94
~NetworkManager() override=default
NetworkManager()
Definition: NetworkManager.cpp:27
QSharedPointer< QNetworkReply > postAsUpdater(QNetworkRequest &pRequest, const QByteArray &pData)
Definition: NetworkManager.cpp:110
void onProxyChanged()
Definition: NetworkManager.cpp:210
virtual void clearConnections()
Definition: NetworkManager.cpp:47
static GlobalStatus toStatus(const QSharedPointer< const QNetworkReply > &pNetworkReply)
Definition: NetworkManager.cpp:273
static QString getFormattedStatusMessage(int pStatus)
Definition: NetworkManager.cpp:356
static void setApplicationProxyFactory()
Definition: NetworkManager.cpp:466
static NetworkError toNetworkError(const QSharedPointer< const QNetworkReply > &pNetworkReply)
Definition: NetworkManager.cpp:216
static int getLoggedStatusCode(const QSharedPointer< const QNetworkReply > &pReply, const MessageLogger &pLogger)
Definition: NetworkManager.cpp:375
static QByteArray getStatusMessage(int pStatus)
Definition: NetworkManager.cpp:341
static void lockProxy(bool pLocked)
Definition: NetworkManager.h:72
static GlobalStatus toTrustedChannelStatus(const QSharedPointer< const QNetworkReply > &pNetworkReply)
Definition: NetworkManager.cpp:246
int getOpenConnectionCount() const
Definition: NetworkManager.cpp:41
static bool isLoggingAllowed(const QSharedPointer< const QNetworkReply > &pReply)
Definition: NetworkManager.cpp:362
static QString getTlsVersionString(QSsl::SslProtocol pProtocol)
void fireProxyAuthenticationRequired(const QNetworkProxy &pProxy, QAuthenticator *pAuthenticator)
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16