浏览代码

Reduce log spam on failed logins

Failed logins already get logged higher up the call chain
Bond_009 1 年之前
父节点
当前提交
a963bce9be

+ 12 - 9
Jellyfin.Server.Implementations/Users/DefaultAuthenticationProvider.cs

@@ -1,4 +1,5 @@
 using System;
+using System.Diagnostics.CodeAnalysis;
 using System.Threading.Tasks;
 using Jellyfin.Data.Entities;
 using MediaBrowser.Controller.Authentication;
@@ -39,14 +40,18 @@ namespace Jellyfin.Server.Implementations.Users
 
         /// <inheritdoc />
         // This is the version that we need to use for local users. Because reasons.
-        public Task<ProviderAuthenticationResult> Authenticate(string username, string password, User resolvedUser)
+        public Task<ProviderAuthenticationResult> Authenticate(string username, string password, User? resolvedUser)
         {
-            if (resolvedUser is null)
+            [DoesNotReturn]
+            static void ThrowAuthenticationException()
             {
-                throw new AuthenticationException("Specified user does not exist.");
+                throw new AuthenticationException("Invalid username or password");
             }
 
-            bool success = false;
+            if (resolvedUser is null)
+            {
+                ThrowAuthenticationException();
+            }
 
             // As long as jellyfin supports password-less users, we need this little block here to accommodate
             if (!HasPassword(resolvedUser) && string.IsNullOrEmpty(password))
@@ -60,15 +65,13 @@ namespace Jellyfin.Server.Implementations.Users
             // Handle the case when the stored password is null, but the user tried to login with a password
             if (resolvedUser.Password is null)
             {
-                throw new AuthenticationException("Invalid username or password");
+                ThrowAuthenticationException();
             }
 
             PasswordHash readyHash = PasswordHash.Parse(resolvedUser.Password);
-            success = _cryptographyProvider.Verify(readyHash, password);
-
-            if (!success)
+            if (!_cryptographyProvider.Verify(readyHash, password))
             {
-                throw new AuthenticationException("Invalid username or password");
+                ThrowAuthenticationException();
             }
 
             // Migrate old hashes to the new default

+ 1 - 1
Jellyfin.Server.Implementations/Users/UserManager.cs

@@ -833,7 +833,7 @@ namespace Jellyfin.Server.Implementations.Users
             }
             catch (AuthenticationException ex)
             {
-                _logger.LogError(ex, "Error authenticating with provider {Provider}", provider.Name);
+                _logger.LogDebug(ex, "Error authenticating with provider {Provider}", provider.Name);
 
                 return (username, false);
             }

+ 3 - 5
MediaBrowser.Controller/Authentication/IAuthenticationProvider.cs

@@ -1,5 +1,3 @@
-#nullable disable
-
 #pragma warning disable CS1591
 
 using System.Threading.Tasks;
@@ -23,7 +21,7 @@ namespace MediaBrowser.Controller.Authentication
 
     public interface IRequiresResolvedUser
     {
-        Task<ProviderAuthenticationResult> Authenticate(string username, string password, User resolvedUser);
+        Task<ProviderAuthenticationResult> Authenticate(string username, string password, User? resolvedUser);
     }
 
     public interface IHasNewUserPolicy
@@ -33,8 +31,8 @@ namespace MediaBrowser.Controller.Authentication
 
     public class ProviderAuthenticationResult
     {
-        public string Username { get; set; }
+        public required string Username { get; set; }
 
-        public string DisplayName { get; set; }
+        public string? DisplayName { get; set; }
     }
 }