AusweisApp
Lade ...
Suche ...
Keine Treffer
NetworkManager.h
gehe zur Dokumentation dieser Datei
1
5#pragma once
6
7#include "Env.h"
8#include "GlobalStatus.h"
9#include "LogHandler.h"
10
11#include <QAtomicInt>
12#include <QAuthenticator>
13#include <QDebug>
14#include <QNetworkAccessManager>
15#include <QNetworkProxy>
16#include <QNetworkReply>
17#include <QSsl>
18
19class test_NetworkManager;
20
21namespace governikus
22{
23
25 : public QObject
26{
27 Q_OBJECT
28 friend class Env;
29 friend class ::test_NetworkManager;
30
31 private:
32 static bool mLockProxy;
33
34 QNetworkAccessManager mNetAccessManager;
35 bool mApplicationExitInProgress;
36 QAtomicInt mOpenConnectionCount;
37 QSet<QByteArray> mUpdaterSessions;
38
39 bool prepareConnection(QNetworkRequest& pRequest) const;
40 [[nodiscard]] QSharedPointer<QNetworkReply> trackConnection(QNetworkReply* pResponse);
41 [[nodiscard]] QSharedPointer<QNetworkReply> processRequest(QNetworkRequest& pRequest,
42 const std::function<QSharedPointer<QNetworkReply>(QNetworkRequest&)>& pInvoke);
43 [[nodiscard]] QSharedPointer<QNetworkReply> processUpdaterRequest(QNetworkRequest& pRequest,
44 const std::function<QSharedPointer<QNetworkReply>(QNetworkRequest&)>& pInvoke);
45
46 public Q_SLOTS:
47 void onShutdown();
48 void onProxyChanged() const;
49
50 protected:
52 ~NetworkManager() override = default;
53
54 public:
65 Q_ENUM(NetworkError)
66
67 [[nodiscard]] static QString getUserAgentServerHeader();
68 static void setApplicationProxyFactory();
69 static void lockProxy(bool pLocked)
70 {
71 mLockProxy = pLocked;
72 }
73
74
75 [[nodiscard]] static bool isLoggingAllowed(const QSharedPointer<const QNetworkReply>& pReply);
76 [[nodiscard]] static int getLoggedStatusCode(const QSharedPointer<const QNetworkReply>& pReply, const MessageLogger& pLogger);
77 [[nodiscard]] static NetworkError toNetworkError(const QSharedPointer<const QNetworkReply>& pNetworkReply);
78 [[nodiscard]] static GlobalStatus toTrustedChannelStatus(const QSharedPointer<const QNetworkReply>& pNetworkReply);
79 [[nodiscard]] static GlobalStatus toStatus(const QSharedPointer<const QNetworkReply>& pNetworkReply);
80 [[nodiscard]] static QString getTlsVersionString(QSsl::SslProtocol pProtocol);
81 [[nodiscard]] static QByteArray getStatusMessage(int pStatus);
82 [[nodiscard]] static QString getFormattedStatusMessage(int pStatus);
83
84 virtual void clearConnections();
85 [[nodiscard]] virtual QSharedPointer<QNetworkReply> paos(QNetworkRequest& pRequest,
86 const QByteArray& pNamespace,
87 const QByteArray& pData,
88 bool pUsePsk = true,
89 const QByteArray& pSslSession = QByteArray());
90 [[nodiscard]] virtual QSharedPointer<QNetworkReply> get(QNetworkRequest& pRequest);
91 [[nodiscard]] virtual QSharedPointer<QNetworkReply> post(QNetworkRequest& pRequest,
92 const QByteArray& pData);
93 [[nodiscard]] virtual QSharedPointer<QNetworkReply> deleteResource(QNetworkRequest& pRequest);
94 [[nodiscard]] virtual QSharedPointer<QNetworkReply> head(QNetworkRequest& pRequest);
95 [[nodiscard]] virtual QSharedPointer<QNetworkReply> options(QNetworkRequest& pRequest);
96
97 [[nodiscard]] QSharedPointer<QNetworkReply> getAsUpdater(QNetworkRequest& pRequest);
98 [[nodiscard]] QSharedPointer<QNetworkReply> postAsUpdater(QNetworkRequest& pRequest,
99 const QByteArray& pData);
100
101 [[nodiscard]] int getOpenConnectionCount() const;
102
103 Q_SIGNALS:
104 void fireProxyAuthenticationRequired(const QNetworkProxy& pProxy, QAuthenticator* pAuthenticator);
106};
107
108} // namespace governikus
109
110QDebug operator <<(QDebug pDbg, QSsl::SslProtocol pProtocol);
QDebug operator<<(QDebug pDbg, QSsl::SslProtocol pProtocol)
Definition Env.h:40
Definition LogHandler.h:34
Definition NetworkManager.h:26
QSharedPointer< QNetworkReply > getAsUpdater(QNetworkRequest &pRequest)
Definition NetworkManager.cpp:118
virtual QSharedPointer< QNetworkReply > head(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:56
void onShutdown()
Definition NetworkManager.cpp:218
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
virtual QSharedPointer< QNetworkReply > options(QNetworkRequest &pRequest)
Definition NetworkManager.cpp:110
void onProxyChanged() const
Definition NetworkManager.cpp:227
NetworkManager()
Definition NetworkManager.cpp:27
QSharedPointer< QNetworkReply > postAsUpdater(QNetworkRequest &pRequest, const QByteArray &pData)
Definition NetworkManager.cpp:126
virtual void clearConnections()
Definition NetworkManager.cpp:47
static GlobalStatus toStatus(const QSharedPointer< const QNetworkReply > &pNetworkReply)
Definition NetworkManager.cpp:311
static QString getFormattedStatusMessage(int pStatus)
Definition NetworkManager.cpp:402
static void setApplicationProxyFactory()
Definition NetworkManager.cpp:500
static NetworkError toNetworkError(const QSharedPointer< const QNetworkReply > &pNetworkReply)
Definition NetworkManager.cpp:233
static int getLoggedStatusCode(const QSharedPointer< const QNetworkReply > &pReply, const MessageLogger &pLogger)
Definition NetworkManager.cpp:421
static QByteArray getStatusMessage(int pStatus)
Definition NetworkManager.cpp:387
static void lockProxy(bool pLocked)
Definition NetworkManager.h:69
static QString getUserAgentServerHeader()
Definition NetworkManager.cpp:209
static GlobalStatus toTrustedChannelStatus(const QSharedPointer< const QNetworkReply > &pNetworkReply)
Definition NetworkManager.cpp:278
int getOpenConnectionCount() const
Definition NetworkManager.cpp:41
static bool isLoggingAllowed(const QSharedPointer< const QNetworkReply > &pReply)
Definition NetworkManager.cpp:408
static QString getTlsVersionString(QSsl::SslProtocol pProtocol)
void fireProxyAuthenticationRequired(const QNetworkProxy &pProxy, QAuthenticator *pAuthenticator)
Defines the AccessRight and AccessRole enum.
Definition CommandApdu.h:17