@@ -182,22 +182,14 @@ static void CheckAddBasicAuthentication(AuthenticationBuilder builder, IConfigur
182182 throw new ArgumentNullException ( "One or more credentials contain null values" ) ;
183183 }
184184
185- builder . Services . Configure < BasicAuthenticationSettings > ( options =>
186- {
187- options . SchemeName = settings . SchemeName ;
188- options . UserName = settings . UserName ;
189- options . Password = settings . Password ;
190- options . Credentials = settings . Credentials ;
191- options . IsConfigured = true ;
192- } ) ;
185+ builder . Services . Configure < BasicAuthenticationSettings > ( section ) ;
193186
194187 builder . AddScheme < BasicAuthenticationSettings , BasicAuthenticationHandler > ( settings . SchemeName , options =>
195188 {
196189 options . SchemeName = settings . SchemeName ;
197190 options . UserName = settings . UserName ;
198191 options . Password = settings . Password ;
199192 options . Credentials = settings . Credentials ;
200- options . IsConfigured = true ;
201193 } ) ;
202194 }
203195 }
@@ -286,35 +278,25 @@ public static void AddSimpleAuthentication(this SwaggerGenOptions options, IConf
286278 ArgumentNullException . ThrowIfNull ( options ) ;
287279 ArgumentNullException . ThrowIfNull ( configuration ) ;
288280 ArgumentNullException . ThrowIfNull ( sectionName ) ;
289- ArgumentNullException . ThrowIfNull ( additionalSecurityRequirements ) ;
290-
291- var hasAdditionalSecurityRequirements = additionalSecurityRequirements . Any ( ) ;
292281
293282 // Adds a security definition for each authentication method that has been configured.
294- // If we have additional security requirements, a corresponding security requirement will be added for each authentication method.
295- // Otherwise, we use an operation filter that adds security requirements only to endpoints that actually require authentication
296- // based on the "Authentication" section configuration.
297- CheckAddJwtBearer ( options , configuration . GetSection ( $ "{ sectionName } :JwtBearer") , hasAdditionalSecurityRequirements ) ;
298- CheckAddApiKey ( options , configuration . GetSection ( $ "{ sectionName } :ApiKey") , hasAdditionalSecurityRequirements ) ;
299- CheckAddBasicAuthentication ( options , configuration . GetSection ( $ "{ sectionName } :Basic") , hasAdditionalSecurityRequirements ) ;
300-
301- if ( hasAdditionalSecurityRequirements )
283+ CheckAddJwtBearer ( options , configuration . GetSection ( $ "{ sectionName } :JwtBearer") ) ;
284+ CheckAddApiKey ( options , configuration . GetSection ( $ "{ sectionName } :ApiKey") ) ;
285+ CheckAddBasicAuthentication ( options , configuration . GetSection ( $ "{ sectionName } :Basic") ) ;
286+
287+ if ( additionalSecurityRequirements ? . Any ( ) ?? false )
302288 {
303289 // Adds all the other security requirements that have been specified.
304290 foreach ( var securityRequirement in additionalSecurityRequirements )
305291 {
306292 options . AddSecurityRequirement ( securityRequirement ) ;
307293 }
308294 }
309- else
310- {
311- // This filters automatically adds a security requirement to each endpoint that requires authentication.
312- options . OperationFilter < AuthenticationOperationFilter > ( ) ;
313- }
314295
296+ options . OperationFilter < AuthenticationOperationFilter > ( ) ;
315297 options . DocumentFilter < ProblemDetailsDocumentFilter > ( ) ;
316298
317- static void CheckAddJwtBearer ( SwaggerGenOptions options , IConfigurationSection section , bool addSecurityRequirement )
299+ static void CheckAddJwtBearer ( SwaggerGenOptions options , IConfigurationSection section )
318300 {
319301 var settings = section . Get < JwtBearerSettings > ( ) ;
320302 if ( settings is null )
@@ -323,10 +305,10 @@ static void CheckAddJwtBearer(SwaggerGenOptions options, IConfigurationSection s
323305 }
324306
325307 AddSecurityDefinition ( options , settings . SchemeName , SecuritySchemeType . Http , JwtBearerDefaults . AuthenticationScheme , ParameterLocation . Header , HeaderNames . Authorization , "Insert the Bearer Token" ) ;
326- CheckAddSecurityRequirement ( options , addSecurityRequirement ? settings . SchemeName : null ) ;
308+ AddSecurityRequirement ( options , settings . SchemeName ) ;
327309 }
328310
329- static void CheckAddApiKey ( SwaggerGenOptions options , IConfigurationSection section , bool addSecurityRequirement )
311+ static void CheckAddApiKey ( SwaggerGenOptions options , IConfigurationSection section )
330312 {
331313 var settings = section . Get < ApiKeySettings > ( ) ;
332314 if ( settings is null )
@@ -337,17 +319,17 @@ static void CheckAddApiKey(SwaggerGenOptions options, IConfigurationSection sect
337319 if ( ! string . IsNullOrWhiteSpace ( settings . HeaderName ) )
338320 {
339321 AddSecurityDefinition ( options , $ "{ settings . SchemeName } in Header", SecuritySchemeType . ApiKey , null , ParameterLocation . Header , settings . HeaderName , "Insert the API Key" ) ;
340- CheckAddSecurityRequirement ( options , addSecurityRequirement ? $ "{ settings . SchemeName } in Header" : null ) ;
322+ AddSecurityRequirement ( options , $ "{ settings . SchemeName } in Header") ;
341323 }
342324
343325 if ( ! string . IsNullOrWhiteSpace ( settings . QueryStringKey ) )
344326 {
345327 AddSecurityDefinition ( options , $ "{ settings . SchemeName } in Query String", SecuritySchemeType . ApiKey , null , ParameterLocation . Query , settings . QueryStringKey , "Insert the API Key" ) ;
346- CheckAddSecurityRequirement ( options , addSecurityRequirement ? $ "{ settings . SchemeName } in Query String" : null ) ;
328+ AddSecurityRequirement ( options , $ "{ settings . SchemeName } in Query String") ;
347329 }
348330 }
349331
350- static void CheckAddBasicAuthentication ( SwaggerGenOptions options , IConfigurationSection section , bool addSecurityRequirement )
332+ static void CheckAddBasicAuthentication ( SwaggerGenOptions options , IConfigurationSection section )
351333 {
352334 var settings = section . Get < BasicAuthenticationSettings > ( ) ;
353335 if ( settings is null )
@@ -356,7 +338,7 @@ static void CheckAddBasicAuthentication(SwaggerGenOptions options, IConfiguratio
356338 }
357339
358340 AddSecurityDefinition ( options , settings . SchemeName , SecuritySchemeType . Http , BasicAuthenticationDefaults . AuthenticationScheme , ParameterLocation . Header , HeaderNames . Authorization , "Insert user name and password" ) ;
359- CheckAddSecurityRequirement ( options , addSecurityRequirement ? settings . SchemeName : null ) ;
341+ AddSecurityRequirement ( options , settings . SchemeName ) ;
360342 }
361343
362344 static void AddSecurityDefinition ( SwaggerGenOptions options , string name , SecuritySchemeType securitySchemeType , string ? scheme , ParameterLocation location , string parameterName , string description )
@@ -369,14 +351,7 @@ static void AddSecurityDefinition(SwaggerGenOptions options, string name, Securi
369351 Scheme = scheme
370352 } ) ;
371353
372- static void CheckAddSecurityRequirement ( SwaggerGenOptions options , string ? name )
373- {
374- if ( string . IsNullOrWhiteSpace ( name ) )
375- {
376- return ;
377- }
378-
379- options . AddSecurityRequirement ( Helpers . CreateSecurityRequirement ( name ) ) ;
380- }
354+ static void AddSecurityRequirement ( SwaggerGenOptions options , string name )
355+ => options . AddSecurityRequirement ( Helpers . CreateSecurityRequirement ( name ) ) ;
381356 }
382357}
0 commit comments