Browse Source

log password on failed login attempt

crobibero 6 years ago
parent
commit
4f974122f8
1 changed files with 24 additions and 13 deletions
  1. 24 13
      MediaBrowser.Api/UserService.cs

+ 24 - 13
MediaBrowser.Api/UserService.cs

@@ -13,6 +13,7 @@ using MediaBrowser.Model.Configuration;
 using MediaBrowser.Model.Dto;
 using MediaBrowser.Model.Dto;
 using MediaBrowser.Model.Services;
 using MediaBrowser.Model.Services;
 using MediaBrowser.Model.Users;
 using MediaBrowser.Model.Users;
+using Microsoft.Extensions.Logging;
 
 
 namespace MediaBrowser.Api
 namespace MediaBrowser.Api
 {
 {
@@ -247,8 +248,9 @@ namespace MediaBrowser.Api
         private readonly INetworkManager _networkManager;
         private readonly INetworkManager _networkManager;
         private readonly IDeviceManager _deviceManager;
         private readonly IDeviceManager _deviceManager;
         private readonly IAuthorizationContext _authContext;
         private readonly IAuthorizationContext _authContext;
+        private readonly ILogger _logger;
 
 
-        public UserService(IUserManager userManager, ISessionManager sessionMananger, IServerConfigurationManager config, INetworkManager networkManager, IDeviceManager deviceManager, IAuthorizationContext authContext)
+        public UserService(IUserManager userManager, ISessionManager sessionMananger, IServerConfigurationManager config, INetworkManager networkManager, IDeviceManager deviceManager, IAuthorizationContext authContext, ILoggerFactory loggerFactory)
         {
         {
             _userManager = userManager;
             _userManager = userManager;
             _sessionMananger = sessionMananger;
             _sessionMananger = sessionMananger;
@@ -256,6 +258,7 @@ namespace MediaBrowser.Api
             _networkManager = networkManager;
             _networkManager = networkManager;
             _deviceManager = deviceManager;
             _deviceManager = deviceManager;
             _authContext = authContext;
             _authContext = authContext;
+            _logger = loggerFactory.CreateLogger(nameof(UserService));
         }
         }
 
 
         public object Get(GetPublicUsers request)
         public object Get(GetPublicUsers request)
@@ -399,19 +402,27 @@ namespace MediaBrowser.Api
         {
         {
             var auth = _authContext.GetAuthorizationInfo(Request);
             var auth = _authContext.GetAuthorizationInfo(Request);
 
 
-            var result = await _sessionMananger.AuthenticateNewSession(new AuthenticationRequest
+            try
             {
             {
-                App = auth.Client,
-                AppVersion = auth.Version,
-                DeviceId = auth.DeviceId,
-                DeviceName = auth.Device,
-                Password = request.Pw,
-                PasswordSha1 = request.Password,
-                RemoteEndPoint = Request.RemoteIp,
-                Username = request.Username
-            }).ConfigureAwait(false);
-
-            return ToOptimizedResult(result);
+                var result = await _sessionMananger.AuthenticateNewSession(new AuthenticationRequest
+                {
+                    App = auth.Client,
+                    AppVersion = auth.Version,
+                    DeviceId = auth.DeviceId,
+                    DeviceName = auth.Device,
+                    Password = request.Pw,
+                    PasswordSha1 = request.Password,
+                    RemoteEndPoint = Request.RemoteIp,
+                    Username = request.Username
+                }).ConfigureAwait(false);
+
+                return ToOptimizedResult(result);
+            }
+            catch(SecurityException e)
+            {
+                // rethrow adding IP address to message
+                throw new SecurityException($"[{Request.RemoteIp}] {e.Message}");
+            }
         }
         }
 
 
         /// <summary>
         /// <summary>