Skip to content

Commit 9d00070

Browse files
author
Dmitriy Zaytsev
committed
Made Origin header choosing logic more clear
1 parent aca74a6 commit 9d00070

File tree

1 file changed

+15
-6
lines changed
  • include/crow/middlewares

1 file changed

+15
-6
lines changed

include/crow/middlewares/cors.h

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -127,16 +127,25 @@ namespace crow
127127
set_header_no_override("Access-Control-Allow-Headers", headers_, res);
128128
set_header_no_override("Access-Control-Expose-Headers", exposed_headers_, res);
129129
set_header_no_override("Access-Control-Max-Age", max_age_, res);
130+
131+
bool origin_set = false;
132+
130133
if (req.method != HTTPMethod::Options)
131134
{
132-
if (allow_credentials_) set_header_no_override("Access-Control-Allow-Credentials", "true", res);
133-
if (allow_credentials_ && origin_ == "*")
134-
set_header_no_override("Access-Control-Allow-Origin", req.get_header_value("Origin"), res);
135-
else
136-
set_header_no_override("Access-Control-Allow-Origin", origin_, res);
135+
if (allow_credentials_)
136+
{
137+
set_header_no_override("Access-Control-Allow-Credentials", "true", res);
138+
if (origin_ == "*")
139+
{
140+
set_header_no_override("Access-Control-Allow-Origin", req.get_header_value("Origin"), res);
141+
origin_set = true;
142+
}
143+
}
137144
}
138-
else
145+
146+
if( !origin_set){
139147
set_header_no_override("Access-Control-Allow-Origin", origin_, res);
148+
}
140149
}
141150

142151
bool ignore_ = false;

0 commit comments

Comments
 (0)