// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddDbContext <KodkodDbContext>(options => options.UseSqlServer(_configuration.GetConnectionString("DefaultConnection")) .UseLazyLoadingProxies()); services.AddIdentity <User, Role>() .AddEntityFrameworkStores <KodkodDbContext>() .AddDefaultTokenProviders(); services.Configure <JwtTokenConfiguration>(options => { options.Issuer = _configuration["Authentication:JwtBearer:Issuer"]; options.Audience = _configuration["Authentication:JwtBearer:Audience"]; options.SigningCredentials = new SigningCredentials(_signingKey, SecurityAlgorithms.HmacSha256); }); services.AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(jwtBearerOptions => { jwtBearerOptions.TokenValidationParameters = new TokenValidationParameters { ValidateActor = true, ValidateAudience = true, ValidateLifetime = true, ValidateIssuerSigningKey = true, ValidIssuer = _configuration["Authentication:JwtBearer:Issuer"], ValidAudience = _configuration["Authentication:JwtBearer:Audience"], IssuerSigningKey = _signingKey }; }); services.AddAuthorization(options => { foreach (var permission in PermissionsConsts.AllPermissions()) { options.AddPolicy(permission.Name, policy => policy.Requirements.Add(new PermissionRequirement(permission))); } }); services.AddMvc(options => options.Filters.Add <KodkodDbContextActionFilter>()); services.AddCors(); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = "Kodkod API", Version = "v1" }); }); services.AddKodkodEntityFramework(); services.AddKodkodApplication(); services.AddScoped <IAuthorizationHandler, PermissionHandler>(); services.AddScoped <KodkodDbContextActionFilter>(); }
public static RolePermission[] BuildRolePermissions() { var rolePermissions = PermissionsConsts.AllPermissions().Select(p => new RolePermission { PermissionId = p.Id, RoleId = AdminRole.Id }).ToList(); var apiUserPermission = PermissionsConsts.AllPermissions() .FirstOrDefault(p => p.Name == PermissionsConsts.ApiUser); if (apiUserPermission != null) { rolePermissions.Add(new RolePermission { PermissionId = apiUserPermission.Id, RoleId = MemberRole.Id }); } return(rolePermissions.ToArray()); }
public static Permission[] BuildPermissions() { return(PermissionsConsts.AllPermissions().ToArray()); }