refactor: IAuthListenHandler und IAuthSenderHandler aktualisiert, um Issuer und Audiance anstelle von Name zu verwenden

This commit is contained in:
Developer 02
2025-03-04 12:20:26 +01:00
parent d21da5028e
commit 1fe3fb9008
9 changed files with 37 additions and 29 deletions

View File

@@ -2,5 +2,5 @@
public interface IAuthListenHandler public interface IAuthListenHandler
{ {
Task ReceiveKeyAsync(string name, string value); Task ReceivePublicKeyAsync(string issuer, string audience, string value);
} }

View File

@@ -2,5 +2,5 @@
public interface IAuthSenderHandler public interface IAuthSenderHandler
{ {
Task SendKeyAsync(string name, string key); Task SendPublicKeyAsync(string issuer, string audience, string key);
} }

View File

@@ -27,7 +27,7 @@ public class AuthClient : IAuthClient, IAsyncDisposable
_connection = cnnBuilder.Build(); _connection = cnnBuilder.Build();
_connection.On<string, string>(nameof(ReceiveKeyAsync), ReceiveKeyAsync); _connection.On<string, string, string>(nameof(ReceivePublicKeyAsync), ReceivePublicKeyAsync);
_logger = logger; _logger = logger;
@@ -65,9 +65,9 @@ public class AuthClient : IAuthClient, IAsyncDisposable
} }
} }
public Task ReceiveKeyAsync(string name, string message) => Task.Run(() => _params.Events.OnMessageReceived(name, message, _logger)); public Task ReceivePublicKeyAsync(string issuer, string audience, string message) => Task.Run(() => _params.Events.OnMessageReceived(issuer, audience, message, _logger));
public Task SendKeyAsync(string name, string message) => _connection.InvokeAsync(nameof(SendKeyAsync), name, message); public Task SendPublicKeyAsync(string issuer, string audience, string message) => _connection.InvokeAsync(nameof(SendPublicKeyAsync), issuer, audience, message);
public virtual async ValueTask DisposeAsync() public virtual async ValueTask DisposeAsync()
{ {

View File

@@ -4,7 +4,7 @@ namespace DigitalData.Auth.Client
{ {
public class ClientEvents public class ClientEvents
{ {
public Action<string, string, ILogger?> OnMessageReceived { get; set; } = (user, message, logger) public Action<string, string, string, ILogger?> OnMessageReceived { get; set; } = (issuer, audience, key, logger)
=> logger?.LogInformation("{user}: {message}", user, message); => logger?.LogInformation("Public key value has been updated. Issuer: {Issuer}, Audience: {Audience}, New Key: {Key}", issuer, audience, key);
} }
} }

View File

@@ -90,27 +90,30 @@ public class AuthHubTests
public async Task ReceiveMessage_ShouldCallOnMessageReceived() public async Task ReceiveMessage_ShouldCallOnMessageReceived()
{ {
// Arrange // Arrange
string rcv_name = string.Empty; string rcv_issuer = string.Empty;
string rcv_value = string.Empty; string rcv_audience = string.Empty;
string rcv_key = string.Empty;
// Receiver client // Receiver client
var provider_receiver = Build(opt => var provider_receiver = Build(opt =>
{ {
opt.Url = _hubUrl; opt.Url = _hubUrl;
opt.Events.OnMessageReceived = (name, value, logger) => opt.Events.OnMessageReceived = (issuer, audience, key, logger) =>
{ {
rcv_name = name; rcv_issuer = issuer;
rcv_value = value; rcv_audience = audience;
rcv_key = key;
}; };
}); });
var client_receiver = provider_receiver.GetRequiredService<IAuthClient>(); var client_receiver = provider_receiver.GetRequiredService<IAuthClient>();
await client_receiver.StartAsync(); await client_receiver.StartAsync();
string name = "name"; string issuer = "issuer";
string value = "value"; string audience = "audience";
string key = "key";
// Act // Act
await _notifier.UpdateKeyAsync(name, value); await _notifier.UpdateKeyAsync(issuer, audience, key);
// delay fort getting answer // delay fort getting answer
await Task.Delay(2000); await Task.Delay(2000);
@@ -118,8 +121,9 @@ public class AuthHubTests
// Assert // Assert
Assert.Multiple(() => Assert.Multiple(() =>
{ {
Assert.That(rcv_name, Is.EqualTo(name)); Assert.That(rcv_issuer, Is.EqualTo(issuer));
Assert.That(rcv_value, Is.EqualTo(value)); Assert.That(rcv_audience, Is.EqualTo(audience));
Assert.That(rcv_key, Is.EqualTo(key));
}); });
} }
} }

View File

@@ -99,7 +99,8 @@ public class AuthClientTests
public async Task ReceiveMessage_ShouldCallOnMessageReceived() public async Task ReceiveMessage_ShouldCallOnMessageReceived()
{ {
// Arrange // Arrange
string rcv_name = string.Empty; string rcv_issuer = string.Empty;
string rcv_audience = string.Empty;
string rcv_key = string.Empty; string rcv_key = string.Empty;
// Sender client // Sender client
@@ -111,20 +112,22 @@ public class AuthClientTests
var provider_receiver = Build(opt => var provider_receiver = Build(opt =>
{ {
opt.Url = _hubUrl; opt.Url = _hubUrl;
opt.Events.OnMessageReceived = (topic, key, logger) => opt.Events.OnMessageReceived = (issuer, audience, key, logger) =>
{ {
rcv_name = topic; rcv_issuer = issuer;
rcv_audience = audience;
rcv_key = key; rcv_key = key;
}; };
}); });
var client_receiver = provider_receiver.GetRequiredService<IAuthClient>(); var client_receiver = provider_receiver.GetRequiredService<IAuthClient>();
await client_receiver.StartAsync(); await client_receiver.StartAsync();
string name = "name"; string issuer = "issuer";
string audience = "audience";
string key = "key"; string key = "key";
// Act // Act
await sender_client.SendKeyAsync(name, key); await sender_client.SendPublicKeyAsync(issuer, audience, key);
// delay fort getting answer // delay fort getting answer
await Task.Delay(2000); await Task.Delay(2000);
@@ -132,7 +135,8 @@ public class AuthClientTests
// Assert // Assert
Assert.Multiple(() => Assert.Multiple(() =>
{ {
Assert.That(rcv_name, Is.EqualTo(name)); Assert.That(rcv_issuer, Is.EqualTo(issuer));
Assert.That(rcv_audience, Is.EqualTo(audience));
Assert.That(rcv_key, Is.EqualTo(key)); Assert.That(rcv_key, Is.EqualTo(key));
}); });
} }

View File

@@ -5,6 +5,6 @@ namespace DigitalData.Auth.API.Hubs;
public class AuthHub : Hub<IAuthListenHandler>, IAuthSenderHandler public class AuthHub : Hub<IAuthListenHandler>, IAuthSenderHandler
{ {
public async Task SendKeyAsync(string name, string value) public async Task SendPublicKeyAsync(string issuer, string audience, string value)
=> await Clients.All.ReceiveKeyAsync(name, value); => await Clients.All.ReceivePublicKeyAsync(issuer, audience, value);
} }

View File

@@ -2,5 +2,5 @@
public interface INotifier public interface INotifier
{ {
Task UpdateKeyAsync(string name, string value); Task UpdateKeyAsync(string issuer, string audience, string value);
} }

View File

@@ -14,8 +14,8 @@ public class Notifier : INotifier
_hubContext = hubContext; _hubContext = hubContext;
} }
public async Task UpdateKeyAsync(string name, string value) public async Task UpdateKeyAsync(string issuer, string audience, string value)
{ {
await _hubContext.Clients.All.ReceiveKeyAsync(name, value); await _hubContext.Clients.All.ReceivePublicKeyAsync(issuer, audience, value);
} }
} }