ImagingTools Core SDK
CAuthorizationControllerComp.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// ImtCore includes
6#include <imtservergql/CGqlRequestHandlerCompBase.h>
7#include <imtbase/IObjectCollection.h>
8#include <imtcrypt/IHashGenerator.h>
9#include <imtauth/ICredentialController.h>
10#include <imtauth/CUserInfo.h>
11#include <imtauth/IJwtSessionController.h>
12#include <GeneratedFiles/imtauthsdl/SDL/1.0/CPP/Authorization.h>
13
14
15namespace imtauthgql
16{
17
18
19class CAuthorizationControllerComp: public sdl::imtauth::Authorization::CGraphQlHandlerCompBase
20{
21public:
22 typedef sdl::imtauth::Authorization::CGraphQlHandlerCompBase BaseClass;
23
24 I_BEGIN_COMPONENT(CAuthorizationControllerComp);
25 I_ASSIGN(m_userCollectionCompPtr, "UserCollection", "User collection", true, "UserCollection");
26 I_ASSIGN(m_userConnectionCollectionCompPtr, "UserConnectionCollection", "User connection collection", false, "UserConnectionCollection");
27 I_ASSIGN_MULTI_0(m_credentialControllersCompPtr, "CredentialControllers", "Credential Controllers", true);
28 I_ASSIGN_MULTI_0(m_systemIdsAttrPtr, "SystemIds", "System-IDs", true);
29 I_ASSIGN(m_jwtSessionControllerCompPtr, "JwtSessionController", "JWT session controller", false, "JwtSessionController");
30 I_END_COMPONENT;
31
32protected:
33 bool ParseDataFromGqlRequest(const imtgql::CGqlRequest& gqlRequest, QByteArray& login, QByteArray& password, QByteArray& productId) const;
34 QByteArray GetUserObjectId(const QByteArray& login) const;
35 bool CheckCredential(const QByteArray& systemId, const QByteArray& login, const QByteArray& password) const;
36 sdl::imtauth::Authorization::CAuthorizationPayload CreateInvalidLoginOrPasswordResponse(const QByteArray& login, QString& errorMessage) const;
37 sdl::imtauth::Authorization::CAuthorizationPayload CreateAuthorizationSuccessfulResponse(
38 imtauth::CUserInfo& userInfo,
39 const QByteArray& systemId,
40 const QByteArray& productId,
41 QString& errorMessage) const;
42
43 // reimplemented (sdl::imtauth::Authorization::CGraphQlHandlerCompBase)
44 virtual sdl::imtauth::Authorization::CAuthorizationPayload OnAuthorization(
45 const sdl::imtauth::Authorization::CAuthorizationGqlRequest& authorizationRequest,
46 const imtgql::CGqlRequest& gqlRequest,
47 QString& errorMessage) const override;
48 virtual sdl::imtauth::Authorization::CAuthorizationPayload OnUserToken(
49 const sdl::imtauth::Authorization::CUserTokenGqlRequest& userTokenRequest,
50 const ::imtgql::CGqlRequest& gqlRequest,
51 QString& errorMessage) const override;
52 virtual sdl::imtauth::Authorization::CLogoutPayload OnLogout(
53 const sdl::imtauth::Authorization::CLogoutGqlRequest& logoutRequest,
54 const ::imtgql::CGqlRequest& gqlRequest,
55 QString& errorMessage) const override;
56 virtual sdl::imtauth::Authorization::CPermissionList OnGetPermissions(
57 const sdl::imtauth::Authorization::CGetPermissionsGqlRequest& getPermissionsRequest,
58 const ::imtgql::CGqlRequest& gqlRequest,
59 QString& errorMessage) const override;
60
61 // reimplemented (imtservergql::CPermissibleGqlRequestHandlerComp)
62 virtual bool CheckPermissions(const imtgql::CGqlRequest& gqlRequest, QString& errorMessage) const override;
63
64protected:
65 I_REF(imtbase::IObjectCollection, m_userCollectionCompPtr);
66 I_REF(imtbase::IObjectCollection, m_userConnectionCollectionCompPtr);
67 I_REF(imtauth::IJwtSessionController, m_jwtSessionControllerCompPtr);
68 I_MULTIREF(imtauth::ICredentialController, m_credentialControllersCompPtr);
69 I_MULTIATTR(QByteArray, m_systemIdsAttrPtr);
70};
71
72
73} // namespace imtauthgql
74
75
Authentication GraphQL API Layer Module.