AusweisApp2
Lade ...
Suche ...
Keine Treffer
NetworkManager.h
gehe zur Dokumentation dieser Datei
1/*
2 * \brief Wrapper around QNetworkAccessManager
3 *
4 * \copyright Copyright (c) 2014-2021 Governikus GmbH & Co. KG, Germany
5 */
6
7#pragma once
8
9#include "Env.h"
10#include "GlobalStatus.h"
11
12#include <QAtomicInt>
13#include <QAuthenticator>
14#include <QDebug>
15#include <QMessageLogger>
16#include <QNetworkAccessManager>
17#include <QNetworkProxy>
18#include <QNetworkReply>
19#include <QSsl>
20
21namespace governikus
22{
23
25 : public QObject
26{
27 Q_OBJECT
28 friend class Env;
29
30 private:
31 static bool mLockProxy;
32
33 QNetworkAccessManager mNetAccessManager;
34 bool mApplicationExitInProgress;
35 QAtomicInt mOpenConnectionCount;
36
37 void trackConnection(QNetworkReply* pResponse, const int pTimeoutInMilliSeconds);
38
39 [[nodiscard]] QString getUserAgentHeader() const;
40
41 public Q_SLOTS:
42 void onShutdown();
43 void onProxyChanged();
44
45 protected:
47 ~NetworkManager() override;
48
49 public:
50 enum class NetworkError
51 {
53 TimeOut,
57 };
58 Q_ENUM(NetworkError)
59
60 static void setApplicationProxyFactory();
61 static void lockProxy(bool pLocked)
62 {
63 mLockProxy = pLocked;
64 }
65
66
67 static int getLoggedStatusCode(const QSharedPointer<const QNetworkReply>& pReply, const QMessageLogger& pLogger);
68 static NetworkError toNetworkError(const QSharedPointer<const QNetworkReply>& pNetworkReply);
69 static GlobalStatus toTrustedChannelStatus(const QSharedPointer<const QNetworkReply>& pNetworkReply);
70 static GlobalStatus toStatus(const QSharedPointer<const QNetworkReply>& pNetworkReply);
71 static QString getTlsVersionString(QSsl::SslProtocol pProtocol);
72 static QByteArray getStatusMessage(int pStatus);
73
74 virtual void clearConnections();
75 virtual QNetworkReply* paos(QNetworkRequest& pRequest,
76 const QByteArray& pNamespace,
77 const QByteArray& pData,
78 bool pUsePsk = true,
79 const QByteArray& pSslSession = QByteArray(),
80 int pTimeoutInMilliSeconds = 30000);
81 virtual QNetworkReply* get(QNetworkRequest& pRequest,
82 const QByteArray& pSslSession = QByteArray(),
83 int pTimeoutInMilliSeconds = 30000);
84
85 virtual QNetworkReply* post(QNetworkRequest& pRequest,
86 const QByteArray& pData,
87 int pTimeoutInMilliSeconds = 30000);
88
89 virtual bool checkUpdateServerCertificate(const QSharedPointer<const QNetworkReply>& pReply);
90
92
93 Q_SIGNALS:
94 void fireProxyAuthenticationRequired(const QNetworkProxy& pProxy, QAuthenticator* pAuthenticator);
96};
97
98} // namespace governikus
99
100QDebug operator <<(QDebug pDbg, QSsl::SslProtocol pProtocol);
QDebug operator<<(QDebug pDbg, QSsl::SslProtocol pProtocol)
Definition: Env.h:44
Definition: GlobalStatus.h:20
Definition: NetworkManager.h:26
virtual bool checkUpdateServerCertificate(const QSharedPointer< const QNetworkReply > &pReply)
Definition: NetworkManager.cpp:126
NetworkError
Definition: NetworkManager.h:51
void onShutdown()
Definition: NetworkManager.cpp:143
virtual QNetworkReply * get(QNetworkRequest &pRequest, const QByteArray &pSslSession=QByteArray(), int pTimeoutInMilliSeconds=30000)
Definition: NetworkManager.cpp:85
virtual QNetworkReply * post(QNetworkRequest &pRequest, const QByteArray &pData, int pTimeoutInMilliSeconds=30000)
Definition: NetworkManager.cpp:105
int getOpenConnectionCount()
Definition: NetworkManager.cpp:43
NetworkManager()
Definition: NetworkManager.cpp:26
void onProxyChanged()
Definition: NetworkManager.cpp:152
virtual void clearConnections()
Definition: NetworkManager.cpp:49
static GlobalStatus toStatus(const QSharedPointer< const QNetworkReply > &pNetworkReply)
Definition: NetworkManager.cpp:215
~NetworkManager() override
Definition: NetworkManager.cpp:38
static void setApplicationProxyFactory()
Definition: NetworkManager.cpp:360
static NetworkError toNetworkError(const QSharedPointer< const QNetworkReply > &pNetworkReply)
Definition: NetworkManager.cpp:158
static QByteArray getStatusMessage(int pStatus)
Definition: NetworkManager.cpp:259
static void lockProxy(bool pLocked)
Definition: NetworkManager.h:61
virtual QNetworkReply * paos(QNetworkRequest &pRequest, const QByteArray &pNamespace, const QByteArray &pData, bool pUsePsk=true, const QByteArray &pSslSession=QByteArray(), int pTimeoutInMilliSeconds=30000)
Definition: NetworkManager.cpp:55
static GlobalStatus toTrustedChannelStatus(const QSharedPointer< const QNetworkReply > &pNetworkReply)
Definition: NetworkManager.cpp:188
static QString getTlsVersionString(QSsl::SslProtocol pProtocol)
void fireProxyAuthenticationRequired(const QNetworkProxy &pProxy, QAuthenticator *pAuthenticator)
static int getLoggedStatusCode(const QSharedPointer< const QNetworkReply > &pReply, const QMessageLogger &pLogger)
Definition: NetworkManager.cpp:274
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15