@@ -117,25 +117,40 @@ public async Task WebHostConfiguration_EnablesForwardedHeaders_CustomHeaders_Fro
117117 }
118118
119119 [ Fact ]
120- public void WebHostConfiguration_EnablesForwardedHeaders_CustomConfig ( )
120+ public async Task WebHostConfiguration_EnablesForwardedHeaders_CustomConfig ( )
121121 {
122122 using var host = WebHost . CreateDefaultBuilder ( )
123123 . ConfigureAppConfiguration ( configBuilder =>
124124 {
125125 configBuilder . AddInMemoryCollection ( new [ ]
126126 {
127127 new KeyValuePair < string , string > ( "FORWARDEDHEADERS_ENABLED" , "true" ) ,
128- new KeyValuePair < string , string > ( "FORWARDEDHEADERS_HEADERS" , "XForwardedHost,XForwardedProto,XForwardedFor, XForwardedFor123" ) ,
128+ new KeyValuePair < string , string > ( "FORWARDEDHEADERS_HEADERS" , "XForwardedHost,XForwardedProto,XForwardedFor123" ) ,
129129 new KeyValuePair < string , string > ( "ForwardedHeaders_KnownIPNetworks" , "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16" ) ,
130130 new KeyValuePair < string , string > ( "ForwardedHeaders_KnownProxies" , "127.0.0.1" )
131131 } ) ;
132132 } )
133133 . UseTestServer ( )
134+ . Configure ( app =>
135+ {
136+ Assert . True ( app . Properties . ContainsKey ( "ForwardedHeadersAdded" ) , "Forwarded Headers" ) ;
137+ app . Run ( context =>
138+ {
139+ Assert . Equal ( "https" , context . Request . Scheme ) ;
140+ return Task . CompletedTask ;
141+ } ) ;
142+ } )
134143 . Build ( ) ;
144+ await host . StartAsync ( ) ;
145+ var client = host . GetTestClient ( ) ;
146+ client . DefaultRequestHeaders . Add ( "x-forwarded-proto" , "https" ) ;
147+ var result = await client . GetAsync ( "http://localhost/" ) ;
148+ result . EnsureSuccessStatusCode ( ) ;
149+
135150 var forwardedHeadersOptions = host . Services . GetRequiredService < IOptions < ForwardedHeadersOptions > > ( ) . Value ;
136151 Assert . NotNull ( forwardedHeadersOptions ) ;
137152 Assert . Equal (
138- ForwardedHeaders . XForwardedHost | ForwardedHeaders . XForwardedProto | ForwardedHeaders . XForwardedFor ,
153+ ForwardedHeaders . XForwardedHost | ForwardedHeaders . XForwardedProto ,
139154 forwardedHeadersOptions . ForwardedHeaders
140155 ) ;
141156 Assert . NotEmpty ( forwardedHeadersOptions . KnownIPNetworks ) ;
0 commit comments