diff --git a/src/Prowlarr.Http/Authentication/UiAuthorizationPolicyProvider.cs b/src/Prowlarr.Http/Authentication/UiAuthorizationPolicyProvider.cs index 2c1cc208b..b87c07e4a 100644 --- a/src/Prowlarr.Http/Authentication/UiAuthorizationPolicyProvider.cs +++ b/src/Prowlarr.Http/Authentication/UiAuthorizationPolicyProvider.cs @@ -2,22 +2,27 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.Extensions.Options; +using NLog; +using NzbDrone.Core.Authentication; using NzbDrone.Core.Configuration; namespace Prowlarr.Http.Authentication { public class UiAuthorizationPolicyProvider : IAuthorizationPolicyProvider { - private const string POLICY_NAME = "UI"; + private const string PolicyName = "UI"; private readonly IConfigFileProvider _config; + private readonly Logger _logger; public DefaultAuthorizationPolicyProvider FallbackPolicyProvider { get; } public UiAuthorizationPolicyProvider(IOptions options, - IConfigFileProvider config) + IConfigFileProvider config, + Logger logger) { FallbackPolicyProvider = new DefaultAuthorizationPolicyProvider(options); _config = config; + _logger = logger; } public Task GetDefaultPolicyAsync() => FallbackPolicyProvider.GetDefaultPolicyAsync(); @@ -26,9 +31,21 @@ public UiAuthorizationPolicyProvider(IOptions options, public Task GetPolicyAsync(string policyName) { - if (policyName.Equals(POLICY_NAME, StringComparison.OrdinalIgnoreCase)) + if (policyName.Equals(PolicyName, StringComparison.OrdinalIgnoreCase)) { - var policy = new AuthorizationPolicyBuilder(_config.AuthenticationMethod.ToString()) + var authenticationMethod = _config.AuthenticationMethod; + +#pragma warning disable CS0618 // Type or member is obsolete + if (authenticationMethod == AuthenticationType.Basic) +#pragma warning restore CS0618 // Type or member is obsolete + { + _logger.Error("Basic authentication method was removed, use Forms authentication instead."); + + authenticationMethod = AuthenticationType.Forms; + } + + var policy = new AuthorizationPolicyBuilder() + .AddAuthenticationSchemes(authenticationMethod.ToString()) .AddRequirements(new BypassableDenyAnonymousAuthorizationRequirement()); return Task.FromResult(policy.Build());