11using Microsoft . AspNetCore . Authentication . JwtBearer ;
22using Microsoft . AspNetCore . Authorization ;
3- using Microsoft . OpenApi . Models ;
3+ using Microsoft . OpenApi ;
44using NetDevPack . Security . JwtExtensions ;
55
66var builder = WebApplication . CreateBuilder ( args ) ;
1717 In = ParameterLocation . Header ,
1818 Type = SecuritySchemeType . ApiKey
1919 } ) ;
20-
21- c . AddSecurityRequirement ( new OpenApiSecurityRequirement
22- {
23- {
24- new OpenApiSecurityScheme
25- {
26- Reference = new OpenApiReference
27- {
28- Type = ReferenceType . SecurityScheme ,
29- Id = "Bearer"
30- }
31- } ,
32- new string [ ] { }
33- }
34- } ) ;
3520} ) ;
3621
3722builder . Services . AddAuthentication ( JwtBearerDefaults . AuthenticationScheme ) . AddJwtBearer ( x =>
3823{
3924 x . RequireHttpsMetadata = true ;
4025 x . SaveToken = true ;
41-
26+
4227 x . SetJwksOptions ( new JwkOptions ( "https://localhost:5080/jwks" , issuer : "https://www.devstore.academy" , audience : "NetDevPack.Security.Jwt.AspNet" ) ) ;
4328} ) ;
4429builder . Services . AddAuthorization ( ) ;
6045 "Freezing" , "Bracing" , "Chilly" , "Cool" , "Mild" , "Warm" , "Balmy" , "Hot" , "Sweltering" , "Scorching"
6146} ;
6247
63- app . MapGet ( "/weatherforecast" , [ Authorize ] ( ) =>
64- {
65- var forecast = Enumerable . Range ( 1 , 5 ) . Select ( index =>
66- new WeatherForecast
67- (
68- DateOnly . FromDateTime ( DateTime . Now . AddDays ( index ) ) ,
69- Random . Shared . Next ( - 20 , 55 ) ,
70- summaries [ Random . Shared . Next ( summaries . Length ) ]
71- ) )
72- . ToArray ( ) ;
73- return forecast ;
74- } )
75- . WithName ( "GetWeatherForecast" )
76- . WithOpenApi ( ) ;
48+ app . MapGet ( "/weatherforecast" , [ Authorize ] ( ) =>
49+ {
50+ var forecast = Enumerable . Range ( 1 , 5 ) . Select ( index =>
51+ new WeatherForecast
52+ (
53+ DateOnly . FromDateTime ( DateTime . Now . AddDays ( index ) ) ,
54+ Random . Shared . Next ( - 20 , 55 ) ,
55+ summaries [ Random . Shared . Next ( summaries . Length ) ]
56+ ) )
57+ . ToArray ( ) ;
58+ return forecast ;
59+ } )
60+ . WithName ( "GetWeatherForecast" )
61+ . WithOpenApi ( ) ;
7762
7863app . Run ( ) ;
7964
8065internal record WeatherForecast ( DateOnly Date , int TemperatureC , string ? Summary )
8166{
8267 public int TemperatureF => 32 + ( int ) ( TemperatureC / 0.5556 ) ;
83- }
68+ }
0 commit comments