< Summary

Information
Class: Services.Authorization.AppAuthorizationOptions
Assembly: Services
File(s): /home/runner/work/Studio2Prod/Studio2Prod/AppRepository/Authorization/AppAuthorizationOptions.cs
Line coverage
100%
Covered lines: 8
Uncovered lines: 0
Coverable lines: 8
Total lines: 37
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_CacheTtlMinutes()100%11100%
get_EnableAutoPageFilter()100%11100%
get_AllowUnregisteredPages()100%11100%
get_SeedAdminEmail()100%11100%
get_SeedAdminPassword()100%11100%
get_AdminRateLimitPerMinute()100%11100%
get_AuthPostRateLimitPerMinute()100%11100%
get_AuthGetRateLimitPerMinute()100%11100%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/AppRepository/Authorization/AppAuthorizationOptions.cs

#LineLine coverage
 1namespace Services.Authorization;
 2
 3/// <summary>
 4/// Настройки системы авторизации, подгружаемые из appsettings.json (секция "Authorization").
 5/// </summary>
 6public class AppAuthorizationOptions
 7{
 8    public const string SectionName = "Authorization";
 9
 10    /// <summary>Время жизни кэша прав пользователя (в минутах).</summary>
 15511    public int CacheTtlMinutes { get; set; } = 15;
 12
 13    /// <summary>Включить автоматический фильтр проверки доступа к страницам.</summary>
 6514    public bool EnableAutoPageFilter { get; set; } = true;
 15
 16    /// <summary>Если true — новые страницы без записи в AppPage считаются разрешёнными (deny иначе).</summary>
 6217    public bool AllowUnregisteredPages { get; set; } = true;
 18
 19    /// <summary>Логин администратора, создаваемого при первом запуске. Задаётся через конфиг / env var.</summary>
 5920    public string SeedAdminEmail { get; set; } = "admin@app.com";
 21
 22    /// <summary>
 23    /// Начальный пароль администратора. ОБЯЗАТЕЛЬНО переопределите через appsettings или переменную среды
 24    /// Authorization__SeedAdminPassword. Значение по умолчанию намеренно не содержит реального пароля.
 25    /// </summary>
 5926    public string SeedAdminPassword { get; set; } = string.Empty;
 27
 28    /// <summary>Лимит запросов к админке в минуту (по пользователю или IP).</summary>
 5929    public int AdminRateLimitPerMinute { get; set; } = 400;
 30
 31    /// <summary>Лимит попыток отправки форм аутентификации (POST) в минуту с одного IP (защита от брут-форса паролей).<
 6432    public int AuthPostRateLimitPerMinute { get; set; } = 20;
 33
 34    /// <summary>Лимит запросов на чтение/открытие страниц аутентификации (GET/HEAD/OPTIONS) в минуту с одного IP.</summ
 9935    public int AuthGetRateLimitPerMinute { get; set; } = 120;
 36}
 37