feat: Refaktorierung von ClientEvents zur Verwendung eines Delegaten für öffentliche Schlüsselaktualisierungen
- Ersetzt `Action<string, string, string, ILogger?>` durch den `ClientEvent`-Delegaten für eine bessere Struktur. - `ClientEvent`-Delegaten mit `AuthClient`-Referenz eingeführt, um öffentliche Schlüssel direkt zu aktualisieren.
This commit is contained in:
@@ -1,10 +1,18 @@
|
||||
using Microsoft.Extensions.Logging;
|
||||
using DigitalData.Core.Abstractions.Security;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace DigitalData.Auth.Client
|
||||
namespace DigitalData.Auth.Client;
|
||||
|
||||
public delegate void ClientEvent(AuthClient client, string issuer, string audience, string content, ILogger? logger = null);
|
||||
|
||||
public static class ClientEvents
|
||||
{
|
||||
public class ClientEvents
|
||||
public static readonly ClientEvent UpdatePublicKeys = (client, issuer, audience, content, logger) =>
|
||||
{
|
||||
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);
|
||||
}
|
||||
if(client.PublicKeys.TryGet(issuer, audience, out var publicKey))
|
||||
publicKey.Content = content;
|
||||
else
|
||||
logger?.LogWarning(
|
||||
"Failed to update public key: No matching key found. Issuer: {Issuer}, Audience: {Audience}. Ensure the key exists before attempting an update.", issuer, audience);
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user