refactor: IAuthListenHandler und IAuthSenderHandler aktualisiert, um Issuer und Audiance anstelle von Name zu verwenden
This commit is contained in:
parent
d21da5028e
commit
1fe3fb9008
@ -2,5 +2,5 @@
|
||||
|
||||
public interface IAuthListenHandler
|
||||
{
|
||||
Task ReceiveKeyAsync(string name, string value);
|
||||
Task ReceivePublicKeyAsync(string issuer, string audience, string value);
|
||||
}
|
||||
@ -2,5 +2,5 @@
|
||||
|
||||
public interface IAuthSenderHandler
|
||||
{
|
||||
Task SendKeyAsync(string name, string key);
|
||||
Task SendPublicKeyAsync(string issuer, string audience, string key);
|
||||
}
|
||||
@ -27,7 +27,7 @@ public class AuthClient : IAuthClient, IAsyncDisposable
|
||||
|
||||
_connection = cnnBuilder.Build();
|
||||
|
||||
_connection.On<string, string>(nameof(ReceiveKeyAsync), ReceiveKeyAsync);
|
||||
_connection.On<string, string, string>(nameof(ReceivePublicKeyAsync), ReceivePublicKeyAsync);
|
||||
|
||||
_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()
|
||||
{
|
||||
|
||||
@ -4,7 +4,7 @@ namespace DigitalData.Auth.Client
|
||||
{
|
||||
public class ClientEvents
|
||||
{
|
||||
public Action<string, string, ILogger?> OnMessageReceived { get; set; } = (user, message, logger)
|
||||
=> logger?.LogInformation("{user}: {message}", user, message);
|
||||
public Action<string, string, string, ILogger?> OnMessageReceived { get; set; } = (issuer, audience, key, logger)
|
||||
=> logger?.LogInformation("Public key value has been updated. Issuer: {Issuer}, Audience: {Audience}, New Key: {Key}", issuer, audience, key);
|
||||
}
|
||||
}
|
||||
@ -90,27 +90,30 @@ public class AuthHubTests
|
||||
public async Task ReceiveMessage_ShouldCallOnMessageReceived()
|
||||
{
|
||||
// Arrange
|
||||
string rcv_name = string.Empty;
|
||||
string rcv_value = string.Empty;
|
||||
|
||||
string rcv_issuer = string.Empty;
|
||||
string rcv_audience = string.Empty;
|
||||
string rcv_key = string.Empty;
|
||||
|
||||
// Receiver client
|
||||
var provider_receiver = Build(opt =>
|
||||
{
|
||||
opt.Url = _hubUrl;
|
||||
opt.Events.OnMessageReceived = (name, value, logger) =>
|
||||
opt.Events.OnMessageReceived = (issuer, audience, key, logger) =>
|
||||
{
|
||||
rcv_name = name;
|
||||
rcv_value = value;
|
||||
rcv_issuer = issuer;
|
||||
rcv_audience = audience;
|
||||
rcv_key = key;
|
||||
};
|
||||
});
|
||||
var client_receiver = provider_receiver.GetRequiredService<IAuthClient>();
|
||||
await client_receiver.StartAsync();
|
||||
|
||||
string name = "name";
|
||||
string value = "value";
|
||||
string issuer = "issuer";
|
||||
string audience = "audience";
|
||||
string key = "key";
|
||||
|
||||
// Act
|
||||
await _notifier.UpdateKeyAsync(name, value);
|
||||
await _notifier.UpdateKeyAsync(issuer, audience, key);
|
||||
|
||||
// delay fort getting answer
|
||||
await Task.Delay(2000);
|
||||
@ -118,8 +121,9 @@ public class AuthHubTests
|
||||
// Assert
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(rcv_name, Is.EqualTo(name));
|
||||
Assert.That(rcv_value, Is.EqualTo(value));
|
||||
Assert.That(rcv_issuer, Is.EqualTo(issuer));
|
||||
Assert.That(rcv_audience, Is.EqualTo(audience));
|
||||
Assert.That(rcv_key, Is.EqualTo(key));
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -99,7 +99,8 @@ public class AuthClientTests
|
||||
public async Task ReceiveMessage_ShouldCallOnMessageReceived()
|
||||
{
|
||||
// Arrange
|
||||
string rcv_name = string.Empty;
|
||||
string rcv_issuer = string.Empty;
|
||||
string rcv_audience = string.Empty;
|
||||
string rcv_key = string.Empty;
|
||||
|
||||
// Sender client
|
||||
@ -111,20 +112,22 @@ public class AuthClientTests
|
||||
var provider_receiver = Build(opt =>
|
||||
{
|
||||
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;
|
||||
};
|
||||
});
|
||||
var client_receiver = provider_receiver.GetRequiredService<IAuthClient>();
|
||||
await client_receiver.StartAsync();
|
||||
|
||||
string name = "name";
|
||||
string issuer = "issuer";
|
||||
string audience = "audience";
|
||||
string key = "key";
|
||||
|
||||
// Act
|
||||
await sender_client.SendKeyAsync(name, key);
|
||||
await sender_client.SendPublicKeyAsync(issuer, audience, key);
|
||||
|
||||
// delay fort getting answer
|
||||
await Task.Delay(2000);
|
||||
@ -132,7 +135,8 @@ public class AuthClientTests
|
||||
// Assert
|
||||
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));
|
||||
});
|
||||
}
|
||||
|
||||
@ -5,6 +5,6 @@ namespace DigitalData.Auth.API.Hubs;
|
||||
|
||||
public class AuthHub : Hub<IAuthListenHandler>, IAuthSenderHandler
|
||||
{
|
||||
public async Task SendKeyAsync(string name, string value)
|
||||
=> await Clients.All.ReceiveKeyAsync(name, value);
|
||||
public async Task SendPublicKeyAsync(string issuer, string audience, string value)
|
||||
=> await Clients.All.ReceivePublicKeyAsync(issuer, audience, value);
|
||||
}
|
||||
@ -2,5 +2,5 @@
|
||||
|
||||
public interface INotifier
|
||||
{
|
||||
Task UpdateKeyAsync(string name, string value);
|
||||
Task UpdateKeyAsync(string issuer, string audience, string value);
|
||||
}
|
||||
|
||||
@ -14,8 +14,8 @@ public class Notifier : INotifier
|
||||
_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);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user