mirror of
https://github.com/oatpp/oatpp.git
synced 2025-01-30 16:59:30 +08:00
Further refactored, MAX_AGE now also adjustable
This commit is contained in:
parent
59e377630d
commit
30b35ac6e7
@ -530,14 +530,15 @@ public: \
|
||||
|
||||
// CORS MACRO // ------------------------------------------------------
|
||||
|
||||
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY(ARG_ORIGIN, ARG_METHODS, ARG_HEADERS, ARG_MAX_AGE) \
|
||||
resp->putHeaderIfNotExists(oatpp::web::protocol::http::Header::CORS_ORIGIN, ARG_ORIGIN); \
|
||||
resp->putHeaderIfNotExists(oatpp::web::protocol::http::Header::CORS_METHODS, ARG_METHODS); \
|
||||
resp->putHeaderIfNotExists(oatpp::web::protocol::http::Header::CORS_HEADERS, ARG_HEADERS);\
|
||||
resp->putHeaderIfNotExists(oatpp::web::protocol::http::Header::CORS_MAX_AGE, ARG_MAX_AGE);
|
||||
|
||||
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_1(ENDPOINTNAME, ...) \
|
||||
ResponseInterceptor Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME = [this](std::shared_ptr<oatpp::web::protocol::http::outgoing::Response> &resp) { \
|
||||
resp->putHeaderIfNotExists("Access-Control-Allow-Origin", "*"); \
|
||||
resp->putHeaderIfNotExists("Access-Control-Allow-Methods", "GET, POST, OPTIONS"); \
|
||||
resp->putHeaderIfNotExists("Access-Control-Allow-Headers", "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range");\
|
||||
resp->putHeaderIfNotExists("Access-Control-Max-Age", "1728000"); \
|
||||
resp->putHeaderIfNotExists("Content-Type", "text/plain; charset=utf-8"); \
|
||||
resp->putHeaderIfNotExists("Content-Length", "0"); \
|
||||
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY("*", "GET, POST, OPTIONS", "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range", "1728000") \
|
||||
return resp; \
|
||||
}; \
|
||||
const std::shared_ptr<ResponseInterceptor> Z__RESPONSE_INTERCEPTOR_##ENDPOINTNAME = addInterceptorForEndpoint( \
|
||||
@ -552,12 +553,7 @@ ENDPOINT("OPTIONS", Z__ENDPOINT_##ENDPOINTNAME->info()->path, ZZ__CORS_OPTIONS_E
|
||||
|
||||
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_2(ENDPOINTNAME, ORIGIN) \
|
||||
ResponseInterceptor Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME = [this](std::shared_ptr<oatpp::web::protocol::http::outgoing::Response> &resp) { \
|
||||
resp->putHeaderIfNotExists("Access-Control-Allow-Origin", ORIGIN); \
|
||||
resp->putHeaderIfNotExists("Access-Control-Allow-Methods", "GET, POST, OPTIONS"); \
|
||||
resp->putHeaderIfNotExists("Access-Control-Allow-Headers", "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range");\
|
||||
resp->putHeaderIfNotExists("Access-Control-Max-Age", "1728000"); \
|
||||
resp->putHeaderIfNotExists("Content-Type", "text/plain; charset=utf-8"); \
|
||||
resp->putHeaderIfNotExists("Content-Length", "0"); \
|
||||
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY(ORIGIN, "GET, POST, OPTIONS", "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range", "1728000") \
|
||||
return resp; \
|
||||
}; \
|
||||
const std::shared_ptr<ResponseInterceptor> Z__RESPONSE_INTERCEPTOR_##ENDPOINTNAME = addInterceptorForEndpoint( \
|
||||
@ -572,12 +568,7 @@ ENDPOINT("OPTIONS", Z__ENDPOINT_##ENDPOINTNAME->info()->path, ZZ__CORS_OPTIONS_E
|
||||
|
||||
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_3(ENDPOINTNAME, ORIGIN, METHODS) \
|
||||
ResponseInterceptor Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME = [this](std::shared_ptr<oatpp::web::protocol::http::outgoing::Response> &resp) { \
|
||||
resp->putHeaderIfNotExists("Access-Control-Allow-Origin", ORIGIN); \
|
||||
resp->putHeaderIfNotExists("Access-Control-Allow-Methods", METHODS); \
|
||||
resp->putHeaderIfNotExists("Access-Control-Allow-Headers", "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range");\
|
||||
resp->putHeaderIfNotExists("Access-Control-Max-Age", "1728000"); \
|
||||
resp->putHeaderIfNotExists("Content-Type", "text/plain; charset=utf-8"); \
|
||||
resp->putHeaderIfNotExists("Content-Length", "0"); \
|
||||
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY(ORIGIN, METHODS, "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range", "1728000") \
|
||||
return resp; \
|
||||
}; \
|
||||
const std::shared_ptr<ResponseInterceptor> Z__RESPONSE_INTERCEPTOR_##ENDPOINTNAME = addInterceptorForEndpoint( \
|
||||
@ -592,12 +583,22 @@ ENDPOINT("OPTIONS", Z__ENDPOINT_##ENDPOINTNAME->info()->path, ZZ__CORS_OPTIONS_E
|
||||
|
||||
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_4(ENDPOINTNAME, ORIGIN, METHODS, HEADERS) \
|
||||
ResponseInterceptor Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME = [this](std::shared_ptr<oatpp::web::protocol::http::outgoing::Response> &resp) { \
|
||||
resp->putHeaderIfNotExists("Access-Control-Allow-Origin", ORIGIN); \
|
||||
resp->putHeaderIfNotExists("Access-Control-Allow-Methods", METHODS); \
|
||||
resp->putHeaderIfNotExists("Access-Control-Allow-Headers", HEADERS);\
|
||||
resp->putHeaderIfNotExists("Access-Control-Max-Age", "1728000"); \
|
||||
resp->putHeaderIfNotExists("Content-Type", "text/plain; charset=utf-8"); \
|
||||
resp->putHeaderIfNotExists("Content-Length", "0"); \
|
||||
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY(ORIGIN, METHODS, HEADERS, "1728000") \
|
||||
return resp; \
|
||||
}; \
|
||||
const std::shared_ptr<ResponseInterceptor> Z__RESPONSE_INTERCEPTOR_##ENDPOINTNAME = addInterceptorForEndpoint( \
|
||||
m_interceptors, \
|
||||
std::make_shared<ResponseInterceptor>(Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME), \
|
||||
#ENDPOINTNAME \
|
||||
); \
|
||||
ENDPOINT("OPTIONS", Z__ENDPOINT_##ENDPOINTNAME->info()->path, ZZ__CORS_OPTIONS_ENDPOINT_##ENDPOINTNAME) { \
|
||||
auto resp = createResponse(Status::CODE_204, ""); \
|
||||
return Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME(resp); \
|
||||
}
|
||||
|
||||
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_5(ENDPOINTNAME, ORIGIN, METHODS, HEADERS, MAX_AGE) \
|
||||
ResponseInterceptor Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME = [this](std::shared_ptr<oatpp::web::protocol::http::outgoing::Response> &resp) { \
|
||||
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY(ORIGIN, METHODS, HEADERS, MAX_AGE) \
|
||||
return resp; \
|
||||
}; \
|
||||
const std::shared_ptr<ResponseInterceptor> Z__RESPONSE_INTERCEPTOR_##ENDPOINTNAME = addInterceptorForEndpoint( \
|
||||
|
@ -177,4 +177,6 @@
|
||||
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_2
|
||||
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_3
|
||||
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_4
|
||||
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_5
|
||||
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY
|
||||
#undef ADDCORS
|
@ -126,6 +126,7 @@ const char* const Header::UPGRADE = "Upgrade";
|
||||
const char* const Header::CORS_ORIGIN = "Access-Control-Allow-Origin";
|
||||
const char* const Header::CORS_METHODS = "Access-Control-Allow-Methods";
|
||||
const char* const Header::CORS_HEADERS = "Access-Control-Allow-Headers";
|
||||
const char* const Header::CORS_MAX_AGE = "Access-Control-Max-Age";
|
||||
|
||||
const char* const Range::UNIT_BYTES = "bytes";
|
||||
const char* const ContentRange::UNIT_BYTES = "bytes";
|
||||
|
@ -500,6 +500,7 @@ public:
|
||||
static const char* const CORS_ORIGIN; // Access-Control-Allow-Origin
|
||||
static const char* const CORS_METHODS; // Access-Control-Allow-Methods
|
||||
static const char* const CORS_HEADERS; // Access-Control-Allow-Headers
|
||||
static const char* const CORS_MAX_AGE; // Access-Control-Max-Age
|
||||
};
|
||||
|
||||
class Range {
|
||||
|
@ -62,7 +62,7 @@ public:
|
||||
#include OATPP_CODEGEN_BEGIN(ApiController)
|
||||
|
||||
ENDPOINT("GET", "/", root) {
|
||||
OATPP_LOGV(TAG, "GET '/'");
|
||||
// OATPP_LOGV(TAG, "GET '/'");
|
||||
return createResponse(Status::CODE_200, "Hello World!!!");
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user