Commit 26d82184 authored by ciody's avatar ciody

Add two more CORS headers

parent 5baa49ce
...@@ -221,6 +221,62 @@ private: ...@@ -221,6 +221,62 @@ private:
std::string val_; std::string val_;
}; };
class AccessControlExposeHeaders : public Header {
public:
NAME("Access-Control-Expose-Headers")
AccessControlExposeHeaders()
: val_()
{ }
explicit AccessControlExposeHeaders(const char* val)
: val_(val)
{ }
explicit AccessControlExposeHeaders(const std::string& val)
: val_(val)
{ }
void parse(const std::string& data);
void write(std::ostream& os) const;
void setUri(std::string val) {
val_ = std::move(val);
}
std::string val() const { return val_; }
private:
std::string val_;
};
class AccessControlAllowMethods : public Header {
public:
NAME("Access-Control-Allow-Methods")
AccessControlAllowMethods()
: val_()
{ }
explicit AccessControlAllowMethods(const char* val)
: val_(val)
{ }
explicit AccessControlAllowMethods(const std::string& val)
: val_(val)
{ }
void parse(const std::string& data);
void write(std::ostream& os) const;
void setUri(std::string val) {
val_ = std::move(val);
}
std::string val() const { return val_; }
private:
std::string val_;
};
class CacheControl : public Header { class CacheControl : public Header {
public: public:
NAME("Cache-Control") NAME("Cache-Control")
......
...@@ -445,6 +445,26 @@ AccessControlAllowHeaders::write(std::ostream& os) const { ...@@ -445,6 +445,26 @@ AccessControlAllowHeaders::write(std::ostream& os) const {
os << val_; os << val_;
} }
void
AccessControlExposeHeaders::parse(const std::string& data) {
val_ = data;
}
void
AccessControlExposeHeaders::write(std::ostream& os) const {
os << val_;
}
void
AccessControlAllowMethods::parse(const std::string& data) {
val_ = data;
}
void
AccessControlAllowMethods::write(std::ostream& os) const {
os << val_;
}
void void
EncodingHeader::parseRaw(const char* str, size_t len) { EncodingHeader::parseRaw(const char* str, size_t len) {
if (!strncasecmp(str, "gzip", len)) { if (!strncasecmp(str, "gzip", len)) {
......
...@@ -17,6 +17,8 @@ namespace Header { ...@@ -17,6 +17,8 @@ namespace Header {
RegisterHeader(Accept); RegisterHeader(Accept);
RegisterHeader(AccessControlAllowOrigin); RegisterHeader(AccessControlAllowOrigin);
RegisterHeader(AccessControlAllowHeaders); RegisterHeader(AccessControlAllowHeaders);
RegisterHeader(AccessControlExposeHeaders);
RegisterHeader(AccessControlAllowMethods);
RegisterHeader(Allow); RegisterHeader(Allow);
RegisterHeader(CacheControl); RegisterHeader(CacheControl);
RegisterHeader(Connection); RegisterHeader(Connection);
......
...@@ -286,3 +286,19 @@ TEST(headers_test, access_control_allow_headers_test) ...@@ -286,3 +286,19 @@ TEST(headers_test, access_control_allow_headers_test)
allowHeaders.parse("Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"); allowHeaders.parse("Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
ASSERT_EQ(allowHeaders.val(), "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"); ASSERT_EQ(allowHeaders.val(), "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
} }
TEST(headers_test, access_control_expose_headers_test)
{
Header::AccessControlExposeHeaders exposeHeaders;
exposeHeaders.parse("Accept, Location");
ASSERT_EQ(exposeHeaders.val(), "Accept, Location");
}
TEST(headers_test, access_control_allow_methods_test)
{
Header::AccessControlAllowMethods allowMethods;
allowMethods.parse("GET, POST, DELETE");
ASSERT_EQ(allowMethods.val(), "GET, POST, DELETE");
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment