refactor: IAuthListenHandler und IAuthSenderHandler aktualisiert, um Issuer und Audiance anstelle von Name zu verwenden
This commit is contained in:
@@ -2,5 +2,5 @@
|
|||||||
|
|
||||||
public interface IAuthListenHandler
|
public interface IAuthListenHandler
|
||||||
{
|
{
|
||||||
Task ReceiveKeyAsync(string name, string value);
|
Task ReceivePublicKeyAsync(string issuer, string audience, string value);
|
||||||
}
|
}
|
||||||
@@ -2,5 +2,5 @@
|
|||||||
|
|
||||||
public interface IAuthSenderHandler
|
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 = 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()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
@@ -2,5 +2,5 @@
|
|||||||
|
|
||||||
public interface INotifier
|
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;
|
_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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user