48 lines
1.8 KiB
C++
48 lines
1.8 KiB
C++
#pragma once
|
|
|
|
#include <drogon/HttpController.h>
|
|
|
|
class OidcController : public drogon::HttpController<OidcController>
|
|
{
|
|
public:
|
|
METHOD_LIST_BEGIN
|
|
ADD_METHOD_TO(OidcController::startCieLogin,
|
|
"/api/v1/auth/cie/start",
|
|
drogon::Post);
|
|
ADD_METHOD_TO(OidcController::cieCallback,
|
|
"/api/v1/auth/cie/callback",
|
|
drogon::Get);
|
|
ADD_METHOD_TO(OidcController::cieSessionStatus,
|
|
"/api/v1/auth/cie/session/{1}",
|
|
drogon::Get);
|
|
ADD_METHOD_TO(OidcController::entityConfiguration,
|
|
"/oidc/rp/.well-known/openid-federation",
|
|
drogon::Get);
|
|
ADD_METHOD_TO(OidcController::resolveEntityStatement,
|
|
"/oidc/rp/resolve",
|
|
drogon::Get);
|
|
ADD_METHOD_TO(OidcController::jwks,
|
|
"/oidc/rp/jwks.json",
|
|
drogon::Get);
|
|
METHOD_LIST_END
|
|
|
|
void startCieLogin(
|
|
const drogon::HttpRequestPtr &req,
|
|
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
|
|
void cieCallback(
|
|
const drogon::HttpRequestPtr &req,
|
|
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
|
|
void cieSessionStatus(
|
|
const drogon::HttpRequestPtr &req,
|
|
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
|
|
std::string state);
|
|
void entityConfiguration(
|
|
const drogon::HttpRequestPtr &req,
|
|
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
|
|
void resolveEntityStatement(
|
|
const drogon::HttpRequestPtr &req,
|
|
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
|
|
void jwks(const drogon::HttpRequestPtr &req,
|
|
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
|
|
};
|