File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -195,7 +195,16 @@ impl MiddlewareLayer for CorsLayer {
195195 ) -> Pin < Box < dyn Future < Output = Response > + Send + ' static > > {
196196 let origins = self . origins . clone ( ) ;
197197 let methods = self . methods_header_value ( ) ;
198- let headers = self . headers_header_value ( ) ;
198+ let allow_headers = if self . headers . len ( ) == 1 && self . headers . first ( ) . map ( |value| value == "*" ) . unwrap_or ( false ) {
199+ req. headers ( )
200+ . get ( header:: ACCESS_CONTROL_REQUEST_HEADERS )
201+ . and_then ( |value| value. to_str ( ) . ok ( ) )
202+ . filter ( |value| !value. trim ( ) . is_empty ( ) )
203+ . map ( str:: to_string)
204+ . unwrap_or_else ( || "*" . to_string ( ) )
205+ } else {
206+ self . headers_header_value ( )
207+ } ;
199208 let credentials = self . credentials ;
200209 let max_age = self . max_age ;
201210 let is_any_origin = matches ! ( origins, AllowedOrigins :: Any ) ;
@@ -256,7 +265,7 @@ impl MiddlewareLayer for CorsLayer {
256265 // Set Allow-Headers
257266 headers_mut. insert (
258267 header:: ACCESS_CONTROL_ALLOW_HEADERS ,
259- headers . parse ( ) . unwrap ( ) ,
268+ allow_headers . parse ( ) . unwrap ( ) ,
260269 ) ;
261270
262271 // Set Allow-Credentials
You can’t perform that action at this time.
0 commit comments