public void Apply(OpenApiOperation operation, OperationFilterContext context) { if (!context.ApiDescription.TryGetMethodInfo(out var methodInfo)) { return; } var authRequired = methodInfo.GetCustomAttributes(true) .Union(methodInfo?.DeclaringType?.GetCustomAttributes(true)) .OfType <AuthorizeAttribute>() .Any(); if (authRequired) { operation.Responses.Add("401", new OpenApiResponse { Description = "Unauthorized" }); operation.Responses.Add("403", new OpenApiResponse { Description = "Forbidden" }); var oAuthScheme = new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" }, }; operation.Security = new List <OpenApiSecurityRequirement> { new OpenApiSecurityRequirement { [oAuthScheme] = new[] { "api" }, }, }; } }
public void InstallService(IServiceCollection services, IConfiguration configuration) { services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Version = "v1", Title = "Api Servisi", Description = ".NET Core 5.0", Contact = new OpenApiContact { Name = "Demo Api Project", Url = new Uri("http://www.google.com"), } }); var securitySchema = new OpenApiSecurityScheme { Description = "JWT Yetkilendirme, Bearer Şeması kullanarak. Örneğin: \"Authorization: Bearer {token}\"", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.Http, Scheme = "bearer", Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }; c.AddSecurityDefinition("Bearer", securitySchema); var securityRequirement = new OpenApiSecurityRequirement { { securitySchema, new[] { "Bearer" } } }; c.AddSecurityRequirement(securityRequirement); //c.OperationFilter<RequiredHeaderParameter>(); }); ServiceTool.Create(services); }
public static IServiceCollection SwaggerConfiguration(this IServiceCollection services) { services.AddSwaggerGen( options => { options.SwaggerDoc("v1", new OpenApiInfo { Title = "UniAtHome.API", Version = "v1" }); options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme() { Name = "Authorization", Type = SecuritySchemeType.ApiKey, Scheme = "Bearer", BearerFormat = "JWT", In = ParameterLocation.Header, Description = "JWT Authorization header using the Bearer scheme." }); var securityScheme = new OpenApiSecurityScheme { Reference = new OpenApiReference { Id = "Bearer", Type = ReferenceType.SecurityScheme } }; var requirements = new OpenApiSecurityRequirement { { securityScheme, new List <string>() } }; options.AddSecurityRequirement(requirements); } ); return(services); }
public void Apply(OpenApiOperation Operation, OperationFilterContext Context) { if (GetAuthorizationLevel(Context) == AuthorizationLevel.User) { Operation.Responses["401"] = new OpenApiResponse { Description = "Unauthorized" }; Operation.Responses["403"] = new OpenApiResponse { Description = "Forbidden" }; OpenApiSecurityScheme Scheme = new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "BearerAuth" } }; Operation.Security = new List <OpenApiSecurityRequirement> { new OpenApiSecurityRequirement { [Scheme] = new List <string>() } }; } }
public void Apply(OpenApiOperation operation, OperationFilterContext context) { // Policy names map to scopes var requiredScopes = context.MethodInfo .GetCustomAttributes(true) .OfType <Microsoft.AspNetCore.Authorization.AuthorizeAttribute>() .Select(attr => attr.Policy) .Distinct().ToList(); if (!requiredScopes.Any()) { return; } operation.Responses.Add("401", new OpenApiResponse { Description = "Unauthorized" }); operation.Responses.Add("403", new OpenApiResponse { Description = "Forbidden" }); var oAuthScheme = new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" } }; operation.Security = new List <OpenApiSecurityRequirement> { new OpenApiSecurityRequirement { [oAuthScheme] = requiredScopes } }; }
public void Apply(OpenApiOperation operation, OperationFilterContext context) { var allowAnonymousAttributes = GetDeclaredMethodAndTypeAttributes <AllowAnonymousAttribute>(context.MethodInfo); IEnumerable <string> requiredScopes; if (allowAnonymousAttributes.Count > 0) { requiredScopes = new List <string>(0); } else { var authorizeAttributes = GetDeclaredMethodAndTypeAttributes <AuthorizeAttribute>(context.MethodInfo); requiredScopes = authorizeAttributes .Select(attr => attr.Policy) .Distinct(); } if (requiredScopes.Any()) { var securityScheme = new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = Constants.Authentication.SecuritySchemeName } }; operation.Security = new List <OpenApiSecurityRequirement> { new OpenApiSecurityRequirement { [securityScheme] = requiredScopes.ToList() } }; } }
public static void UseSwaggerSecurityOptions(this SwaggerGenOptions options) { var bearer = new OpenApiSecurityScheme() { Description = "JWT Bearer", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey }; options.AddSecurityDefinition("Bearer", bearer); var sr = new OpenApiSecurityRequirement(); sr.Add(new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }, Array.Empty <string>()); options.AddSecurityRequirement(sr); options.SchemaFilter <SwaggerFilter>(); }
static OpenApiSecurity() { OpenApiSecurityScheme = new OpenApiSecurityScheme { Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.Http, Scheme = "bearer", BearerFormat = "JWT" }; OpenApiSecurityRequirement = new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }, new List <string>() } }; }
public static IServiceCollection AddSwaggerDocumentation(this IServiceCollection services) { services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "SkiNet API", Version = "v1" }); var securitySchema = new OpenApiSecurityScheme { Description = "JWT Auth Bearer Scheme", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.Http, Scheme = "bearer", Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }; }); return(services); }
public static IServiceCollection AddSwaggerDocumentations(this IServiceCollection services) { services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Version = "v1", Title = "DzShopping API", Description = "A simple example ASP.NET Core Web API" }); // Config swagger for identity var securitySchema = new OpenApiSecurityScheme { Description = "JWT Auth Bearer Scheme", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.Http, Scheme = "bearer", Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }; c.AddSecurityDefinition("Bearer", securitySchema); var securityRequirement = new OpenApiSecurityRequirement { { securitySchema, new[] { "Bearer" } } }; c.AddSecurityRequirement(securityRequirement); }); return(services); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddSwaggerGen(c => { // add Basic Authentication var basicSecurityScheme = new OpenApiSecurityScheme { Type = SecuritySchemeType.Http, Scheme = "basic", Reference = new OpenApiReference { Id = "BasicAuth", Type = ReferenceType.SecurityScheme } }; c.AddSecurityDefinition(basicSecurityScheme.Reference.Id, basicSecurityScheme); OpenApiSecurityRequirement securityRequirement = new OpenApiSecurityRequirement { { basicSecurityScheme, new string[] { } } }; c.AddSecurityRequirement(securityRequirement); }); services.AddAuthentication("BasicAuthentication") .AddScheme <AuthenticationSchemeOptions, BasicAuthenticationHandler>("BasicAuthentication", null); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddSingleton <IPasswordGenerator, PasswordHandler.PasswordGenerator>(t => new PasswordHandler.PasswordGenerator(Configuration.GetSection("PasswordAppSettings")["ValidCharacters"])); //Let's set up Swagger UI services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "PasswordGenerator", Version = "v1" }); var securityScheme = new OpenApiSecurityScheme { Type = SecuritySchemeType.ApiKey, Scheme = "ApiKey", In = ParameterLocation.Header, Name = Configuration.GetSection("PasswordAppSettings")["ApiKey_Name"], Description = "Please provide an api key in the header", Reference = new OpenApiReference { Id = "ApiKey", Type = ReferenceType.SecurityScheme } }; c.AddSecurityDefinition(securityScheme.Reference.Id, securityScheme); c.AddSecurityRequirement(new OpenApiSecurityRequirement { { securityScheme, new string[] { } } }); // Set the comments path for the Swagger JSON and UI. var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); c.IncludeXmlComments(xmlPath); }); }
private static void ConfigureSwaggerServices(ServiceConfigurationContext context) { var apiSecurityScheme = new OpenApiSecurityScheme() { Description = "JWT Authorization header using the bearer scheme. Example: \"Authorization: Bearer {token}\"", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey }; context.Services.AddSwaggerGen( options => { options.SwaggerDoc("v1", new OpenApiInfo { Title = "MaterialSystem API", Version = "v1" }); options.DocInclusionPredicate((docName, description) => true); IncludeXmlComments(options); options.AddSecurityDefinition("bearerAuth", apiSecurityScheme); var apiSecurityRequirement = new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "bearerAuth" } }, new List <string>() } }; options.AddSecurityRequirement(apiSecurityRequirement); }); }
public static IServiceCollection AddSwaggerConfiguration(this IServiceCollection services, string apiName) => services.AddSwaggerGen(opt => { opt.SwaggerDoc("v1", new OpenApiInfo { Title = $"Api de {apiName}", Contact = new OpenApiContact { Name = "Regis / Ivan", Email = "*****@*****.**" } }); var security = new OpenApiSecurityScheme { Description = "Insira o token JWT dessa maneira: Bearer {token}", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey, Scheme = "Bearer", BearerFormat = "JWT" }; opt.AddSecurityDefinition("Bearer", security); opt.AddSecurityRequirement(new OpenApiSecurityRequirement() { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Id = "Bearer", Type = ReferenceType.SecurityScheme } }, Array.Empty <string>() } }); });
public void Apply(OpenApiOperation operation, OperationFilterContext context) { // Policy names map to scopes IEnumerable <string> requiredScopes = context.MethodInfo .GetCustomAttributes(true) .OfType <AuthorizeAttribute>() .Select(attr => attr.Policy) .Distinct(); IEnumerable <string> enumerable = requiredScopes as string[] ?? requiredScopes.ToArray(); if (enumerable.Any()) { operation.Responses.Add("401", new OpenApiResponse { Description = "Unauthorized" }); operation.Responses.Add("403", new OpenApiResponse { Description = "Forbidden" }); var oAuthScheme = new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" }, }; operation.Security = new List <OpenApiSecurityRequirement> { new OpenApiSecurityRequirement { [oAuthScheme] = enumerable.ToList(), }, }; } }
/// <summary> /// 自定义AddSwagger扩展 /// </summary> /// <param name="services"></param> /// <returns></returns> public static IServiceCollection AddSwagger(this IServiceCollection services) { return(services.AddSwaggerGen(options => { // 遍历并应用Swagger分组信息 ApiInfos.ForEach(x => { options.SwaggerDoc(x.UrlPrefix, x.OpenApiInfo); }); // API注释所需XML文件 options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, "Resources/MeowvBlog.API.xml")); #region 小绿锁,JWT身份认证配置 var security = new OpenApiSecurityScheme { Description = "JWT模式授权,请输入 Bearer {Token} 进行身份验证", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey }; options.AddSecurityDefinition("oauth2", security); options.AddSecurityRequirement(new OpenApiSecurityRequirement { { security, new List <string>() } }); options.OperationFilter <AddResponseHeadersFilter>(); options.OperationFilter <AppendAuthorizeToSummaryOperationFilter>(); options.OperationFilter <SecurityRequirementsOperationFilter>(); #endregion // 应用Controller的API文档描述信息 options.DocumentFilter <SwaggerDocumentFilter>(); })); }
public void Apply(OpenApiOperation operation, OperationFilterContext context) { // Check for authorize attribute var hasAuthorize = context.MethodInfo.DeclaringType.GetCustomAttributes(true).OfType<AuthorizeAttribute>().Any() || context.MethodInfo.GetCustomAttributes(true).OfType<AuthorizeAttribute>().Any(); if (!hasAuthorize) return; operation.Responses.TryAdd("401", new OpenApiResponse { Description = "Unauthorized" }); operation.Responses.TryAdd("403", new OpenApiResponse { Description = "Forbidden" }); var oAuthScheme = new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" } }; operation.Security = new List<OpenApiSecurityRequirement> { new OpenApiSecurityRequirement { [ oAuthScheme ] = new [] { "ownerapi" } } }; }
/// <inheritdoc /> public List <OpenApiSecurityRequirement> GetOpenApiSecurityRequirement(MethodInfo element, NamingStrategy namingStrategy = null) { var attributes = element.GetCustomAttributes <OpenApiSecurityAttribute>(inherit: false); if (!attributes.Any()) { return(new List <OpenApiSecurityRequirement>()); } var requirements = new List <OpenApiSecurityRequirement>(); foreach (var attr in attributes) { var scheme = new OpenApiSecurityScheme() { Type = attr.SchemeType, Description = attr.Description, Name = GetSecuritySchemeName(attr), In = GetSecuritySchemeLocation(attr), Scheme = GetSecuritySchemeScheme(attr, namingStrategy), BearerFormat = GetSecurityBearerFormat(attr), Flows = GetSecurityOAuthFlows(attr), OpenIdConnectUrl = GetSecurityOpenIdConnectUrl(attr), Reference = GetSecurityReference(attr), }; var value = GetSecurityOAuthScopes(attr, scheme.Flows); var requirement = new OpenApiSecurityRequirement(); requirement.Add(scheme, value); requirements.Add(requirement); } return(requirements); }
public void Apply(OpenApiOperation operation, OperationFilterContext context) { bool hasAllowAnonymousAttr = context.MethodInfo.DeclaringType.GetCustomAttributes(true).OfType <AllowAnonymousAttribute>().Any() || context.MethodInfo.GetCustomAttributes(true).OfType <AllowAnonymousAttribute>().Any(); if (hasAllowAnonymousAttr) { return; } operation.Responses.TryAdd(StatusCodes.Status401Unauthorized.ToString(), new OpenApiResponse { Description = "Unauthorized" }); operation.Responses.TryAdd(StatusCodes.Status403Forbidden.ToString(), new OpenApiResponse { Description = "Forbidden" }); var jwtBearerScheme = new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = JwtBearerDefaults.AuthenticationScheme } }; operation.Security = new List <OpenApiSecurityRequirement> { new OpenApiSecurityRequirement { [jwtBearerScheme] = new string[] { } } }; }
public static IServiceCollection AddSwaggerDocumentation(this IServiceCollection services) { services.AddSwaggerGen(options => { options.SwaggerDoc("CoreSwagger", new OpenApiInfo { Title = "SeyirNet By SeyirMobil-FK", Version = "2.0.0", Description = "SeyirNet Service 2019 by SeyirMobil-FK", Contact = new OpenApiContact() { Name = "Swagger Implementation Faruk Kaya", Url = new Uri("http://ngnet.seyirmobil.com"), Email = "*****@*****.**" }, TermsOfService = new Uri("http://swagger.io/terms/") }); var securityScheme = new OpenApiSecurityScheme() { In = ParameterLocation.Header, Type = SecuritySchemeType.Http, Description = "Lütfen alana 'Bearer' kelimesini ve ardından bir boşluk ve JWT değerini girin.\r\n Örnek: \"Authorization: Bearer {token}\"", Name = "Authorization", BearerFormat = "JWT", Scheme = "bearer" }; options.AddSecurityDefinition("Bearer", securityScheme); var securityRequirement = new OpenApiSecurityRequirement { { securityScheme, new string[] { } } }; options.AddSecurityRequirement(securityRequirement); }); return(services); }
public static IServiceCollection AddSwaggerDocumentation(this IServiceCollection services) { services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "PRMS API", Version = "v1" }); var securityScheme = new OpenApiSecurityScheme { Description = "Jwt Auth Bearer Scheme", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.Http, Scheme = "bearer", Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }; c.AddSecurityDefinition("Bearer", securityScheme); var securityRequirement = new OpenApiSecurityRequirement { { securityScheme, new[] { "Bearer" } } }; c.AddSecurityRequirement(securityRequirement); }); return(services); }
private void AddSwagger(IServiceCollection services) { services.AddSwaggerGen(setup => { // Include 'SecurityScheme' to use JWT Authentication var jwtSecurityScheme = new OpenApiSecurityScheme { Scheme = "bearer", BearerFormat = "JWT", Name = "JWT Authentication", In = ParameterLocation.Header, Type = SecuritySchemeType.Http, Description = "JWT Bearer token", Reference = new OpenApiReference { Id = JwtBearerDefaults.AuthenticationScheme, Type = ReferenceType.SecurityScheme } }; setup.AddSecurityDefinition(jwtSecurityScheme.Reference.Id, jwtSecurityScheme); setup.AddSecurityRequirement(new OpenApiSecurityRequirement { { jwtSecurityScheme, Array.Empty <string>() } }); setup.SwaggerDoc("v1", new OpenApiInfo { Title = "Prueba WEB api", Version = "v1", Description = "Desarrollador:Armando Rodrigues" }); }); }
public void Apply(OpenApiOperation operation, OperationFilterContext context) { var allAttributes = context.MethodInfo.DeclaringType.GetCustomAttributes(true) .Union(context.MethodInfo.GetCustomAttributes(true)); //过滤掉 AllowAnonymousAttribute if (!allAttributes.Any(x => x is AllowAnonymousAttribute)) { var authAttributes = allAttributes.OfType <AuthorizeAttribute>().Distinct(); if (authAttributes.Any()) { operation.Responses.Add("401", new OpenApiResponse { Description = "Unauthorized" }); operation.Responses.Add("403", new OpenApiResponse { Description = "Forbidden" }); var oAuthScheme = new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" } }; operation.Security = new List <OpenApiSecurityRequirement> { new OpenApiSecurityRequirement { [oAuthScheme] = new string[] { "SA" } } }; } } }
public void Apply(Operation operation, OperationFilterContext context) #endif { bool hasOperationAuthentication = context.MethodInfo .GetCustomAttributes(true) .OfType <SharedAccessKeyAuthenticationAttribute>() .Any(); bool hasControllerAuthentication = context.MethodInfo.DeclaringType != null && context.MethodInfo.DeclaringType .GetCustomAttributes(true) .OfType <SharedAccessKeyAuthenticationAttribute>() .Any(); if (hasOperationAuthentication || hasControllerAuthentication) { if (operation.Responses.ContainsKey("401") == false) { #if NETCOREAPP3_1 operation.Responses.Add("401", new OpenApiResponse { Description = "Unauthorized" }); #else operation.Responses.Add("401", new Response { Description = "Unauthorized" }); #endif } if (operation.Responses.ContainsKey("403") == false) { #if NETCOREAPP3_1 operation.Responses.Add("403", new OpenApiResponse { Description = "Forbidden" }); #else operation.Responses.Add("403", new Response { Description = "Forbidden" }); #endif } #if NETCOREAPP3_1 var scheme = new OpenApiSecurityScheme { Scheme = _securitySchemeName, Type = _securitySchemeType }; operation.Security = new List <OpenApiSecurityRequirement> { new OpenApiSecurityRequirement { [scheme] = new List <string>() } }; #else operation.Security = new List <IDictionary <string, IEnumerable <string> > > { new Dictionary <string, IEnumerable <string> > { [_securitySchemeName] = Enumerable.Empty <string>() } }; #endif } }
// This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddTransient <LeagueLogic, LeagueLogic>(); services.AddTransient <TeamLogic, TeamLogic>(); services.AddTransient <PlayerLogic, PlayerLogic>(); services.AddTransient <AuthLogic, AuthLogic>(); services.AddTransient <IRepository <League>, LeagueRepo>(); services.AddTransient <IRepository <Team>, TeamRepo>(); services.AddTransient <IRepository <Player>, PlayerRepo>(); //services.AddSwaggerGen(); services.AddSwaggerGen(c => { // configure SwaggerDoc and others // add JWT Authentication var securityScheme = new OpenApiSecurityScheme { Name = "JWT Authentication", Description = "Enter JWT Bearer token **_only_**", In = ParameterLocation.Header, Type = SecuritySchemeType.Http, Scheme = "bearer", // must be lower case BearerFormat = "JWT", Reference = new OpenApiReference { Id = JwtBearerDefaults.AuthenticationScheme, Type = ReferenceType.SecurityScheme } }; c.AddSecurityDefinition(securityScheme.Reference.Id, securityScheme); c.AddSecurityRequirement(new OpenApiSecurityRequirement { { securityScheme, new string[] { } } }); }); services.AddCors(options => { options.AddDefaultPolicy(builder => { builder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod(); }); }); services.AddDbContext <PlayersDbContext>(); services.AddIdentity <IdentityUser, IdentityRole>( option => { //jelszo hazirend option.Password.RequireDigit = false; option.Password.RequiredLength = 6; option.Password.RequireNonAlphanumeric = false; option.Password.RequireUppercase = false; option.Password.RequireLowercase = false; } ).AddEntityFrameworkStores <PlayersDbContext>() .AddDefaultTokenProviders(); services.AddAuthentication(option => { option.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; option.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; option.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(options => { options.SaveToken = true; options.RequireHttpsMetadata = true; options.TokenValidationParameters = new TokenValidationParameters() { ValidateIssuer = true, ValidateAudience = true, ValidAudience = "http://www.security.org", ValidIssuer = "http://www.security.org", IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("Paris Berlin Cairo Sydney Tokyo Beijing Rome London Athens")) }; }); }
public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddMvc(options => { options.EnableEndpointRouting = false; }); services.AddAuthorization(options => { options.AddPolicy(AuthenticationConstants.ValidMatchPolicy, builder => { builder .RequireAuthenticatedUser() .AddAuthenticationSchemes(AuthenticationConstants.Scheme) .RequireClaim(AuthenticationConstants.UserIdClaim) .RequireClaim(AuthenticationConstants.MatchIdClaim); }); }); services.AddAuthentication(AuthenticationConstants.Scheme) .AddScheme <AuthenticationSchemeOptions, SimpleAuthenticationHandler>(AuthenticationConstants.Scheme, null); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "Game api", Version = "v1" }); var scheme = new OpenApiSecurityScheme { In = ParameterLocation.Header, Description = "Please enter token into the field as \"Bearer {token}\"", Name = "Authorization", Type = SecuritySchemeType.ApiKey, Scheme = "Bearer" }; c.AddSecurityDefinition("Bearer", scheme); c.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" }, Scheme = "oauth2", Name = "Bearer", In = ParameterLocation.Header, }, new string[] { } } }); c.DescribeAllEnumsAsStrings(); }); services.AddSignalR(); services .AddScoped <IGameAuthenticationService, GameAuthenticationService>() .AddSingleton <ITokenService, TokenService>() .AddSingleton <IMatchService, MatchService>(); }
/// <inheritdoc /> public void Apply(OpenApiOperation operation, OperationFilterContext context) { if (operation == null) { throw new ArgumentNullException(nameof(operation)); } if (context == null) { throw new ArgumentNullException(nameof(context)); } operation.OperationId = $"{context.MethodInfo.DeclaringType.Name}.{context.MethodInfo.Name}"; var authAttributes = context .MethodInfo .DeclaringType .GetCustomAttributes(true) .Union( context .MethodInfo .GetCustomAttributes(true)) .OfType <TgsAuthorizeAttribute>(); if (authAttributes.Any()) { var tokenScheme = new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = TokenSecuritySchemeId } }; operation.Security = new List <OpenApiSecurityRequirement> { new OpenApiSecurityRequirement { { tokenScheme, new List <string>() } } }; if (authAttributes.Any(attr => attr.RightsType.HasValue && RightsHelper.IsInstanceRight(attr.RightsType.Value))) { operation.Parameters.Add(new OpenApiParameter { Reference = new OpenApiReference { Type = ReferenceType.Parameter, Id = ApiHeaders.InstanceIdHeader } }); } } else { // HomeController.CreateToken var passwordScheme = new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = PasswordSecuritySchemeId } }; operation.Security = new List <OpenApiSecurityRequirement> { new OpenApiSecurityRequirement { { passwordScheme, new List <string>() } } }; } }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { #region Sesja services.AddDistributedMemoryCache(); services.AddSession(options => { options.IdleTimeout = TimeSpan.FromSeconds(300); options.Cookie.HttpOnly = true; options.Cookie.IsEssential = true; }); #endregion Sesja //services.AddSingleton((container) => //{ // var logger = container.GetRequiredService<ILogger>(); // return logger; //}); services.AddIdentityCore <IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true) .AddEntityFrameworkStores <ApplicationDbContext>(); services.AddScoped <IGroupRepository, GroupRepository>(); services.AddScoped <IMailRepository, MailRepository>(); services.AddScoped <IMailsService, MailsService>(); services.AddScoped <IGroupsService, GroupsService>(); services.AddHttpContextAccessor(); services.AddDbContext <ApplicationDbContext>(options => { options.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking); //options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"), b => b.MigrationsAssembly("MailingGroups")); options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"), sqlServerOptionsAction: sqlOptions => { sqlOptions.EnableRetryOnFailure( maxRetryCount: 10, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null); }); }); services.AddAuthorization(); services.AddControllers(); #region identity services.AddIdentity <ApplicationUser, IdentityRole>( opts => { opts.Password.RequireDigit = true; opts.Password.RequireLowercase = true; opts.Password.RequireUppercase = true; opts.Password.RequireNonAlphanumeric = false; opts.Password.RequiredLength = 7; }) .AddEntityFrameworkStores <ApplicationDbContext>(); services.AddAuthentication(opts => { opts.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; opts.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; opts.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(cfg => { cfg.RequireHttpsMetadata = false; cfg.SaveToken = true; cfg.TokenValidationParameters = new TokenValidationParameters() { // standard configuration ValidIssuer = Configuration["Auth:Jwt:Issuer"], ValidAudience = Configuration["Auth:Jwt:Audience"], IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Auth:Jwt:Key"])), ClockSkew = TimeSpan.Zero, // security switches RequireExpirationTime = true, ValidateIssuer = true, ValidateIssuerSigningKey = true, ValidateAudience = true }; }); #endregion services.AddSwaggerGen((options) => { options.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" }); var securityScheme = new OpenApiSecurityScheme { Name = "JWT Authentication", Description = "Enter JWT Bearer token **_only_**", In = ParameterLocation.Header, Type = SecuritySchemeType.Http, Scheme = "bearer", // must be lower case BearerFormat = "JWT", Reference = new OpenApiReference { Id = JwtBearerDefaults.AuthenticationScheme, Type = ReferenceType.SecurityScheme } }; options.AddSecurityDefinition(securityScheme.Reference.Id, securityScheme); options.AddSecurityRequirement(new OpenApiSecurityRequirement { { securityScheme, new string[] { } } }); }); }
public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "CWebService.Api", Version = "v1" }); c.OperationFilter <UpdateFileDownloadOperations>(); }); services.AddDbContextPool <ApplicationContext>(options => getDefaultOptions(options)); services.AddDbContextPool <BrandContext>(options => getDefaultOptions(options)); services.AddDbContextPool <ModelContext>(options => getDefaultOptions(options)); services.AddDbContextPool <VehicleContext>(options => getDefaultOptions(options)); services.AddDbContextPool <BookingContext>(options => getDefaultOptions(options)); services.AddSimpleInjector(container, options => { options.AddAspNetCore() .AddControllerActivation(); }); container = new Composer(container).Build(); services.AddAuthentication(option => { option.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; option.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(option => { option.RequireHttpsMetadata = false; option.SaveToken = true; option.TokenValidationParameters = new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes("0dabbad70b774266a599b10fc1a98911")), ValidateIssuer = false, ValidateAudience = false }; }); services.AddSwaggerGen(setup => { var jwtSecurityScheme = new OpenApiSecurityScheme { Scheme = "bearer", BearerFormat = "JWT", Name = "JWT Authentication", In = ParameterLocation.Header, Type = SecuritySchemeType.Http, Description = "Put your JWT Bearer below!", Reference = new OpenApiReference { Id = JwtBearerDefaults.AuthenticationScheme, Type = ReferenceType.SecurityScheme } }; setup.AddSecurityDefinition(jwtSecurityScheme.Reference.Id, jwtSecurityScheme); setup.AddSecurityRequirement(new OpenApiSecurityRequirement { { jwtSecurityScheme, Array.Empty <string>() } }); }); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddTransient <IOneVoteLogic>(x => new OneVoteLogic(Configuration["DBPassword"])); services.AddTransient <IAllVotesLogic>(x => new AllVotesLogic(Configuration["DBPassword"])); services.AddTransient <IRoleSwitchLogic>(x => new RoleSwitchLogic(Configuration["DBPassword"])); services.AddTransient <AuthLogic, AuthLogic>(); services.AddSwaggerGen(c => { // configure SwaggerDoc and others // add JWT Authentication var securityScheme = new OpenApiSecurityScheme { Name = "JWT Authentication", Description = "Enter JWT Bearer token **_only_**", In = ParameterLocation.Header, Type = SecuritySchemeType.Http, Scheme = "bearer", // must be lower case BearerFormat = "JWT", Reference = new OpenApiReference { Id = JwtBearerDefaults.AuthenticationScheme, Type = ReferenceType.SecurityScheme } }; c.AddSecurityDefinition(securityScheme.Reference.Id, securityScheme); c.IncludeXmlComments(XmlCommentsFilePath); c.AddSecurityRequirement(new OpenApiSecurityRequirement { { securityScheme, new string[] { } } }); }); var connectionString = "server=95.111.254.24;database=projektmunka;user=projektmunka;password="******"DBPassword"] + ";ApplicationIntent=ReadWrite;"; services.AddDbContext <VotoeDbContext>(options => options.UseSqlServer(connectionString)); services.AddIdentity <IdentityUser, IdentityRole>( option => { option.Password.RequireDigit = false; option.Password.RequiredLength = 6; option.Password.RequireNonAlphanumeric = false; option.Password.RequireUppercase = false; option.Password.RequireLowercase = false; } ).AddEntityFrameworkStores <VotoeDbContext>() .AddDefaultTokenProviders(); services.AddAuthentication(option => { option.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; option.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; option.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(options => { options.SaveToken = true; options.RequireHttpsMetadata = true; options.TokenValidationParameters = new TokenValidationParameters() { ValidateIssuer = true, ValidateAudience = true, ValidAudience = "http://www.security.org", ValidIssuer = "http://www.security.org", IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("abc 123 970608 qwertzuiop")) }; }); services.AddAuthorization(options => { options.DefaultPolicy = new AuthorizationPolicyBuilder(JwtBearerDefaults.AuthenticationScheme) .RequireAuthenticatedUser() .Build(); }); services.AddCors(options => { options.AddDefaultPolicy( builder => { builder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod(); }); }); }