AusweisApp
 
Lade ...
Suche ...
Keine Treffer
UiPluginWebService.h
gehe zur Dokumentation dieser Datei
1
4
5#pragma once
6
7#include "HttpHandler.h"
8#include "HttpRequest.h"
9#include "HttpServer.h"
10#include "UiPlugin.h"
11
12#include "context/AuthContext.h"
13
14class test_UiPluginWebService;
15class test_UiPluginWebServiceBrowserHandler;
16
17namespace governikus
18{
19
24 : public UiPlugin
25 , private HttpHandler
26{
27 Q_OBJECT
28 Q_PLUGIN_METADATA(IID "governikus.UiPlugin" FILE "metadata.json")
29 Q_INTERFACES(governikus::UiPlugin)
32
33 private:
34 enum class ExistingAppResult : int
35 {
36 REBIND_SUCCEED,
37 REBIND_FAILED,
38 SHOWUI_SUCCEED,
39 SHOWUI_TIMEOUT
40 };
41
42 QSharedPointer<HttpServer> mServer;
43
44 [[nodiscard]] bool listening();
45 [[nodiscard]] bool initialize() override;
46 [[nodiscard]] ExistingAppResult handleExistingApp(quint16 pPort, const QHostAddress& pHost) const;
47
48 void setCommonHeaders(HttpResponse& pResponse) const;
49 QString sendErrorPage(const QSharedPointer<HttpRequest>& pRequest, http_status pStatusCode, const GlobalStatus& pStatus) const;
50 QString sendRedirect(const QSharedPointer<HttpRequest>& pRequest, const QUrl& pRedirectAddress) const;
51 QString sendRedirect(const QSharedPointer<HttpRequest>& pRequest, const QSharedPointer<AuthContext>& pContext) const;
52
53 void sendWorkflowAlreadyActive(const QSharedPointer<HttpRequest>& pRequest) const;
54 void handleShowUiRequest(const QString& pUiModule, const QSharedPointer<HttpRequest>& pRequest) override;
55 void handleWorkflowRequest(const QSharedPointer<HttpRequest>& pRequest) override;
56
57 private Q_SLOTS:
58 void doShutdown() override;
59 void onWorkflowStarted(const QSharedPointer<WorkflowRequest>& pRequest) override;
60 void onWorkflowFinished(const QSharedPointer<WorkflowRequest>& pRequest) override;
61 void onWorkflowUnhandled(const QSharedPointer<WorkflowRequest>& pRequest) override;
62 void onNewRequest(const QSharedPointer<HttpRequest>& pRequest);
63
64 public:
66 ~UiPluginWebService() override = default;
67};
68
69} // namespace governikus
Definition GlobalStatus.h:19
Definition HttpResponse.h:15
~UiPluginWebService() override=default
friend class ::test_UiPluginWebService
Definition UiPluginWebService.h:30
UiPluginWebService()
Definition UiPluginWebService.cpp:29
friend class ::test_UiPluginWebServiceBrowserHandler
Definition UiPluginWebService.h:31
http_status
Definition http_parser.h:155
Defines the AccessRight and AccessRole enum.
Definition CommandApdu.h:17