#pragma once #include #include "common/OidcJwt.h" #include #include namespace visione::oidc { struct RpProviderConfig { std::string issuer; std::string trustAnchor; std::string profile; }; struct RpConfig { bool enabled{false}; std::string baseUrl; std::string clientId; std::string redirectUri; std::string postLoginRedirectUri; std::string organizationName; std::string clientName; std::vector contacts; std::string jwksPath; std::string federationJwksPath; std::vector trustAnchors; std::vector providers; std::vector federationJwks; std::vector coreJwks; Json::Value trustMark; }; RpConfig loadRpConfig(); Json::Value rpMetadataDocument(const RpConfig &config); Json::Value rpPublicJwksDocument(const RpConfig &config); Json::Value entityConfigurationDocument(const RpConfig &config); std::optional findProviderConfig(const RpConfig &config, const std::string &provider); } // namespace visione::oidc