Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Microsoft.AspNetCore.Authentication.JwtBearer;
- using Microsoft.EntityFrameworkCore;
- using Microsoft.IdentityModel.Tokens;
- using Microsoft.OpenApi.Models;
- using Rezervacije.Data;
- using Rezervacije.Services;
- using Rezervacije.Web.Services;
- using Swashbuckle.AspNetCore.Filters;
- using System.Text;
- var builder = WebApplication.CreateBuilder(args);
- // Add services to the container.
- builder.Services.AddControllersWithViews();
- builder.Services.AddSwaggerGen(options =>
- {
- options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme
- {
- In = ParameterLocation.Header,
- Name = "Authorization",
- Type = SecuritySchemeType.ApiKey
- });
- //Bearer jwt-token
- options.OperationFilter<SecurityRequirementsOperationFilter>();
- });
- builder.Services.AddCors(options =>
- {
- options.AddPolicy("AllowReactFrontend",
- builder => builder
- .WithOrigins("http://localhost:44491")
- .AllowAnyMethod()
- .AllowAnyHeader()
- .AllowCredentials());
- });
- builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
- .AddJwtBearer(options =>
- {
- options.TokenValidationParameters = new TokenValidationParameters
- {
- ValidateIssuerSigningKey = true,
- ValidateIssuer = true,
- ValidateAudience = true,
- ValidateLifetime = true,
- ValidIssuer = builder.Configuration.GetSection("AppSettings:Issuer").Value!,
- ValidAudience = builder.Configuration.GetSection("AppSettings:Audience").Value!,
- IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(
- builder.Configuration.GetSection("AppSettings:Token").Value!))
- };
- });
- builder.Services.AddAuthorization();
- var connectionString = builder.Configuration.GetConnectionString("DefaultConnection")
- ?? throw new InvalidOperationException("Default connection string not found");
- builder.Services.AddDbContextFactory<RezervacijeDbContext>(options =>
- options.UseNpgsql(connectionString), ServiceLifetime.Transient);
- builder.Services.AddScoped<IInfobipApiService, InfobipApiService>();
- builder.Services.AddScoped<IAuthentificationService, AuthentificationService>();
- builder.Services.AddScoped<IBusinessService, BusinessService>();
- builder.Services.AddScoped<IProfileDataService, ProfileDataService>();
- builder.Services.AddScoped<IReservationService, ReservationService>();
- var app = builder.Build();
- // Configure the HTTP request pipeline.
- if (app.Environment.IsDevelopment())
- {
- app.UseSwagger();
- app.UseSwaggerUI();
- }
- app.UseCors("AllowReactFrontend");
- app.UseHttpsRedirection();
- app.UseAuthentication();
- app.UseAuthorization();
- app.UseStatusCodePages();
- app.MapControllers();
- app.Run();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement