More security!
All checks were successful
Build Docker Images / test (map[name:Morska plugin_project:DiunaBI.Plugins.Morska]) (push) Successful in 1m25s
Build Docker Images / test (map[name:PedrolloPL plugin_project:DiunaBI.Plugins.PedrolloPL]) (push) Successful in 1m25s
Build Docker Images / build-and-push (map[image_suffix:morska name:Morska plugin_project:DiunaBI.Plugins.Morska]) (push) Successful in 1m41s
Build Docker Images / build-and-push (map[image_suffix:pedrollopl name:PedrolloPL plugin_project:DiunaBI.Plugins.PedrolloPL]) (push) Successful in 1m40s

This commit is contained in:
2025-12-05 23:41:56 +01:00
parent 0c874575d4
commit 595076033b
9 changed files with 131 additions and 7 deletions

View File

@@ -7,6 +7,7 @@ public class EntityChangeHubService : IAsyncDisposable
{
private readonly string _hubUrl;
private readonly ILogger<EntityChangeHubService> _logger;
private readonly TokenProvider _tokenProvider;
private HubConnection? _hubConnection;
private bool _isInitialized;
private readonly SemaphoreSlim _initializationLock = new SemaphoreSlim(1, 1);
@@ -19,7 +20,8 @@ public class EntityChangeHubService : IAsyncDisposable
public EntityChangeHubService(
string apiBaseUrl,
IServiceProvider serviceProvider,
ILogger<EntityChangeHubService> logger)
ILogger<EntityChangeHubService> logger,
TokenProvider tokenProvider)
{
_instanceId = Interlocked.Increment(ref _instanceCounter);
@@ -28,6 +30,7 @@ public class EntityChangeHubService : IAsyncDisposable
_hubUrl = baseUrl + "/hubs/entitychanges";
_logger = logger;
_tokenProvider = tokenProvider;
_logger.LogInformation("🏗️ EntityChangeHubService instance #{InstanceId} created. Hub URL: {HubUrl}", _instanceId, _hubUrl);
Console.WriteLine($"🏗️ EntityChangeHubService instance #{_instanceId} created. Hub URL: {_hubUrl}, _isInitialized = {_isInitialized}");
}
@@ -58,7 +61,21 @@ public class EntityChangeHubService : IAsyncDisposable
Console.WriteLine($"🔌 Initializing SignalR connection to {_hubUrl}");
_hubConnection = new HubConnectionBuilder()
.WithUrl(_hubUrl)
.WithUrl(_hubUrl, options =>
{
// Add JWT token to SignalR connection
if (!string.IsNullOrEmpty(_tokenProvider.Token))
{
options.AccessTokenProvider = () => Task.FromResult<string?>(_tokenProvider.Token);
_logger.LogInformation("✅ JWT token added to SignalR connection");
Console.WriteLine($"✅ JWT token added to SignalR connection");
}
else
{
_logger.LogWarning("⚠️ No JWT token available for SignalR connection");
Console.WriteLine($"⚠️ No JWT token available for SignalR connection");
}
})
.WithAutomaticReconnect()
.Build();