mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-07-09 03:04:24 -04:00
Add wrapper object for authentication event information
This commit is contained in:
parent
5b711f38d1
commit
958f8f71e8
@ -24,6 +24,7 @@ using MediaBrowser.Controller.Drawing;
|
|||||||
using MediaBrowser.Controller.Dto;
|
using MediaBrowser.Controller.Dto;
|
||||||
using MediaBrowser.Controller.Entities;
|
using MediaBrowser.Controller.Entities;
|
||||||
using MediaBrowser.Controller.Events;
|
using MediaBrowser.Controller.Events;
|
||||||
|
using MediaBrowser.Controller.Events.Authentication;
|
||||||
using MediaBrowser.Controller.Events.Session;
|
using MediaBrowser.Controller.Events.Session;
|
||||||
using MediaBrowser.Controller.Library;
|
using MediaBrowser.Controller.Library;
|
||||||
using MediaBrowser.Controller.Net;
|
using MediaBrowser.Controller.Net;
|
||||||
@ -1462,7 +1463,7 @@ namespace Emby.Server.Implementations.Session
|
|||||||
|
|
||||||
if (user is null)
|
if (user is null)
|
||||||
{
|
{
|
||||||
await _eventManager.PublishAsync(new GenericEventArgs<AuthenticationRequest>(request)).ConfigureAwait(false);
|
await _eventManager.PublishAsync(new GenericEventArgs<AuthenticationRequestEventArgs>(new AuthenticationRequestEventArgs(request))).ConfigureAwait(false);
|
||||||
throw new AuthenticationException("Invalid username or password entered.");
|
throw new AuthenticationException("Invalid username or password entered.");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1498,7 +1499,7 @@ namespace Emby.Server.Implementations.Session
|
|||||||
ServerId = _appHost.SystemId
|
ServerId = _appHost.SystemId
|
||||||
};
|
};
|
||||||
|
|
||||||
await _eventManager.PublishAsync(new GenericEventArgs<AuthenticationResult>(returnResult)).ConfigureAwait(false);
|
await _eventManager.PublishAsync(new GenericEventArgs<AuthenticationResultEventArgs>(new AuthenticationResultEventArgs(returnResult))).ConfigureAwait(false);
|
||||||
return returnResult;
|
return returnResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ using System.Threading.Tasks;
|
|||||||
using Jellyfin.Data.Entities;
|
using Jellyfin.Data.Entities;
|
||||||
using Jellyfin.Data.Events;
|
using Jellyfin.Data.Events;
|
||||||
using MediaBrowser.Controller.Events;
|
using MediaBrowser.Controller.Events;
|
||||||
using MediaBrowser.Controller.Session;
|
using MediaBrowser.Controller.Events.Authentication;
|
||||||
using MediaBrowser.Model.Activity;
|
using MediaBrowser.Model.Activity;
|
||||||
using MediaBrowser.Model.Globalization;
|
using MediaBrowser.Model.Globalization;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
@ -14,7 +14,7 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Security
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates an entry in the activity log when there is a failed login attempt.
|
/// Creates an entry in the activity log when there is a failed login attempt.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class AuthenticationFailedLogger : IEventConsumer<GenericEventArgs<AuthenticationRequest>>
|
public class AuthenticationFailedLogger : IEventConsumer<GenericEventArgs<AuthenticationRequestEventArgs>>
|
||||||
{
|
{
|
||||||
private readonly ILocalizationManager _localizationManager;
|
private readonly ILocalizationManager _localizationManager;
|
||||||
private readonly IActivityManager _activityManager;
|
private readonly IActivityManager _activityManager;
|
||||||
@ -31,7 +31,7 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Security
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public async Task OnEvent(GenericEventArgs<AuthenticationRequest> eventArgs)
|
public async Task OnEvent(GenericEventArgs<AuthenticationRequestEventArgs> eventArgs)
|
||||||
{
|
{
|
||||||
await _activityManager.CreateAsync(new ActivityLog(
|
await _activityManager.CreateAsync(new ActivityLog(
|
||||||
string.Format(
|
string.Format(
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Jellyfin.Data.Entities;
|
using Jellyfin.Data.Entities;
|
||||||
using Jellyfin.Data.Events;
|
using Jellyfin.Data.Events;
|
||||||
using MediaBrowser.Controller.Authentication;
|
|
||||||
using MediaBrowser.Controller.Events;
|
using MediaBrowser.Controller.Events;
|
||||||
|
using MediaBrowser.Controller.Events.Authentication;
|
||||||
using MediaBrowser.Model.Activity;
|
using MediaBrowser.Model.Activity;
|
||||||
using MediaBrowser.Model.Globalization;
|
using MediaBrowser.Model.Globalization;
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Security
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates an entry in the activity log when there is a successful login attempt.
|
/// Creates an entry in the activity log when there is a successful login attempt.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class AuthenticationSucceededLogger : IEventConsumer<GenericEventArgs<AuthenticationResult>>
|
public class AuthenticationSucceededLogger : IEventConsumer<GenericEventArgs<AuthenticationResultEventArgs>>
|
||||||
{
|
{
|
||||||
private readonly ILocalizationManager _localizationManager;
|
private readonly ILocalizationManager _localizationManager;
|
||||||
private readonly IActivityManager _activityManager;
|
private readonly IActivityManager _activityManager;
|
||||||
@ -29,7 +29,7 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Security
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public async Task OnEvent(GenericEventArgs<AuthenticationResult> eventArgs)
|
public async Task OnEvent(GenericEventArgs<AuthenticationResultEventArgs> eventArgs)
|
||||||
{
|
{
|
||||||
await _activityManager.CreateAsync(new ActivityLog(
|
await _activityManager.CreateAsync(new ActivityLog(
|
||||||
string.Format(
|
string.Format(
|
||||||
@ -42,7 +42,7 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Security
|
|||||||
ShortOverview = string.Format(
|
ShortOverview = string.Format(
|
||||||
CultureInfo.InvariantCulture,
|
CultureInfo.InvariantCulture,
|
||||||
_localizationManager.GetLocalizedString("LabelIpAddressValue"),
|
_localizationManager.GetLocalizedString("LabelIpAddressValue"),
|
||||||
eventArgs.Argument.SessionInfo.RemoteEndPoint),
|
eventArgs.Argument.SessionInfo?.RemoteEndPoint),
|
||||||
}).ConfigureAwait(false);
|
}).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,12 +8,11 @@ using Jellyfin.Server.Implementations.Events.Consumers.System;
|
|||||||
using Jellyfin.Server.Implementations.Events.Consumers.Updates;
|
using Jellyfin.Server.Implementations.Events.Consumers.Updates;
|
||||||
using Jellyfin.Server.Implementations.Events.Consumers.Users;
|
using Jellyfin.Server.Implementations.Events.Consumers.Users;
|
||||||
using MediaBrowser.Common.Updates;
|
using MediaBrowser.Common.Updates;
|
||||||
using MediaBrowser.Controller.Authentication;
|
|
||||||
using MediaBrowser.Controller.Events;
|
using MediaBrowser.Controller.Events;
|
||||||
|
using MediaBrowser.Controller.Events.Authentication;
|
||||||
using MediaBrowser.Controller.Events.Session;
|
using MediaBrowser.Controller.Events.Session;
|
||||||
using MediaBrowser.Controller.Events.Updates;
|
using MediaBrowser.Controller.Events.Updates;
|
||||||
using MediaBrowser.Controller.Library;
|
using MediaBrowser.Controller.Library;
|
||||||
using MediaBrowser.Controller.Session;
|
|
||||||
using MediaBrowser.Controller.Subtitles;
|
using MediaBrowser.Controller.Subtitles;
|
||||||
using MediaBrowser.Model.Tasks;
|
using MediaBrowser.Model.Tasks;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
@ -35,8 +34,8 @@ namespace Jellyfin.Server.Implementations.Events
|
|||||||
collection.AddScoped<IEventConsumer<SubtitleDownloadFailureEventArgs>, SubtitleDownloadFailureLogger>();
|
collection.AddScoped<IEventConsumer<SubtitleDownloadFailureEventArgs>, SubtitleDownloadFailureLogger>();
|
||||||
|
|
||||||
// Security consumers
|
// Security consumers
|
||||||
collection.AddScoped<IEventConsumer<GenericEventArgs<AuthenticationRequest>>, AuthenticationFailedLogger>();
|
collection.AddScoped<IEventConsumer<GenericEventArgs<AuthenticationRequestEventArgs>>, AuthenticationFailedLogger>();
|
||||||
collection.AddScoped<IEventConsumer<GenericEventArgs<AuthenticationResult>>, AuthenticationSucceededLogger>();
|
collection.AddScoped<IEventConsumer<GenericEventArgs<AuthenticationResultEventArgs>>, AuthenticationSucceededLogger>();
|
||||||
|
|
||||||
// Session consumers
|
// Session consumers
|
||||||
collection.AddScoped<IEventConsumer<PlaybackStartEventArgs>, PlaybackStartLogger>();
|
collection.AddScoped<IEventConsumer<PlaybackStartEventArgs>, PlaybackStartLogger>();
|
||||||
|
@ -0,0 +1,60 @@
|
|||||||
|
using System;
|
||||||
|
using MediaBrowser.Controller.Session;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Events.Authentication;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A class representing an authentication result event.
|
||||||
|
/// </summary>
|
||||||
|
public class AuthenticationRequestEventArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="AuthenticationRequestEventArgs"/> class.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="request">The <see cref="AuthenticationRequest"/>.</param>
|
||||||
|
public AuthenticationRequestEventArgs(AuthenticationRequest request)
|
||||||
|
{
|
||||||
|
Username = request.Username;
|
||||||
|
UserId = request.UserId;
|
||||||
|
App = request.App;
|
||||||
|
AppVersion = request.AppVersion;
|
||||||
|
DeviceId = request.DeviceId;
|
||||||
|
DeviceName = request.DeviceName;
|
||||||
|
RemoteEndPoint = request.RemoteEndPoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the user name.
|
||||||
|
/// </summary>
|
||||||
|
public string? Username { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the user id.
|
||||||
|
/// </summary>
|
||||||
|
public Guid? UserId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the app.
|
||||||
|
/// </summary>
|
||||||
|
public string? App { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the app version.
|
||||||
|
/// </summary>
|
||||||
|
public string? AppVersion { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the device id.
|
||||||
|
/// </summary>
|
||||||
|
public string? DeviceId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the device name.
|
||||||
|
/// </summary>
|
||||||
|
public string? DeviceName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the remote endpoint.
|
||||||
|
/// </summary>
|
||||||
|
public string? RemoteEndPoint { get; set; }
|
||||||
|
}
|
@ -0,0 +1,37 @@
|
|||||||
|
using MediaBrowser.Controller.Authentication;
|
||||||
|
using MediaBrowser.Controller.Session;
|
||||||
|
using MediaBrowser.Model.Dto;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Events.Authentication;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A class representing an authentication result event.
|
||||||
|
/// </summary>
|
||||||
|
public class AuthenticationResultEventArgs
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="AuthenticationResultEventArgs"/> class.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="result">The <see cref="AuthenticationResult"/>.</param>
|
||||||
|
public AuthenticationResultEventArgs(AuthenticationResult result)
|
||||||
|
{
|
||||||
|
User = result.User;
|
||||||
|
SessionInfo = result.SessionInfo;
|
||||||
|
ServerId = result.ServerId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the user.
|
||||||
|
/// </summary>
|
||||||
|
public UserDto User { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the session information.
|
||||||
|
/// </summary>
|
||||||
|
public SessionInfo? SessionInfo { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the server id.
|
||||||
|
/// </summary>
|
||||||
|
public string? ServerId { get; set; }
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user