fix: PushWorker APNs/FCM 크리덴셜 복호화 누락 수정 (#271)
All checks were successful
SPMS_API/pipeline/head This commit looks good
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/272
This commit is contained in:
commit
c97ae32080
|
|
@ -29,6 +29,7 @@ public class PushWorker : BackgroundService
|
||||||
private readonly IWebhookService _webhookService;
|
private readonly IWebhookService _webhookService;
|
||||||
private readonly IFcmSender _fcmSender;
|
private readonly IFcmSender _fcmSender;
|
||||||
private readonly IApnsSender _apnsSender;
|
private readonly IApnsSender _apnsSender;
|
||||||
|
private readonly ICredentialEncryptionService _credentialEncryption;
|
||||||
private readonly ILogger<PushWorker> _logger;
|
private readonly ILogger<PushWorker> _logger;
|
||||||
|
|
||||||
public PushWorker(
|
public PushWorker(
|
||||||
|
|
@ -41,6 +42,7 @@ public class PushWorker : BackgroundService
|
||||||
IWebhookService webhookService,
|
IWebhookService webhookService,
|
||||||
IFcmSender fcmSender,
|
IFcmSender fcmSender,
|
||||||
IApnsSender apnsSender,
|
IApnsSender apnsSender,
|
||||||
|
ICredentialEncryptionService credentialEncryption,
|
||||||
ILogger<PushWorker> logger)
|
ILogger<PushWorker> logger)
|
||||||
{
|
{
|
||||||
_rabbitConnection = rabbitConnection;
|
_rabbitConnection = rabbitConnection;
|
||||||
|
|
@ -52,6 +54,7 @@ public class PushWorker : BackgroundService
|
||||||
_webhookService = webhookService;
|
_webhookService = webhookService;
|
||||||
_fcmSender = fcmSender;
|
_fcmSender = fcmSender;
|
||||||
_apnsSender = apnsSender;
|
_apnsSender = apnsSender;
|
||||||
|
_credentialEncryption = credentialEncryption;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -185,8 +188,9 @@ public class PushWorker : BackgroundService
|
||||||
|
|
||||||
if (androidDevices.Count > 0 && !string.IsNullOrEmpty(service.FcmCredentials))
|
if (androidDevices.Count > 0 && !string.IsNullOrEmpty(service.FcmCredentials))
|
||||||
{
|
{
|
||||||
|
var fcmCredentials = _credentialEncryption.Decrypt(service.FcmCredentials);
|
||||||
var fcmResults = await SendFcmBatchAsync(
|
var fcmResults = await SendFcmBatchAsync(
|
||||||
service.FcmCredentials, androidDevices, pushMessage, customData, ct);
|
fcmCredentials, androidDevices, pushMessage, customData, ct);
|
||||||
allResults.AddRange(fcmResults);
|
allResults.AddRange(fcmResults);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -196,8 +200,9 @@ public class PushWorker : BackgroundService
|
||||||
!string.IsNullOrEmpty(service.ApnsTeamId) &&
|
!string.IsNullOrEmpty(service.ApnsTeamId) &&
|
||||||
!string.IsNullOrEmpty(service.ApnsBundleId))
|
!string.IsNullOrEmpty(service.ApnsBundleId))
|
||||||
{
|
{
|
||||||
|
var apnsPrivateKey = _credentialEncryption.Decrypt(service.ApnsPrivateKey);
|
||||||
var apnsResults = await SendApnsBatchAsync(
|
var apnsResults = await SendApnsBatchAsync(
|
||||||
service, iosDevices, pushMessage, customData, ct);
|
service, apnsPrivateKey, iosDevices, pushMessage, customData, ct);
|
||||||
allResults.AddRange(apnsResults);
|
allResults.AddRange(apnsResults);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -448,14 +453,14 @@ public class PushWorker : BackgroundService
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<List<(Device Device, PushResultDto Result)>> SendApnsBatchAsync(
|
private async Task<List<(Device Device, PushResultDto Result)>> SendApnsBatchAsync(
|
||||||
Service service, List<Device> devices, PushMessageDto message,
|
Service service, string apnsPrivateKey, List<Device> devices, PushMessageDto message,
|
||||||
Dictionary<string, string>? customData, CancellationToken ct)
|
Dictionary<string, string>? customData, CancellationToken ct)
|
||||||
{
|
{
|
||||||
var results = new List<(Device, PushResultDto)>();
|
var results = new List<(Device, PushResultDto)>();
|
||||||
var tokens = devices.Select(d => d.DeviceToken).ToList();
|
var tokens = devices.Select(d => d.DeviceToken).ToList();
|
||||||
|
|
||||||
var batchResults = await _apnsSender.SendBatchAsync(
|
var batchResults = await _apnsSender.SendBatchAsync(
|
||||||
service.ApnsPrivateKey!, service.ApnsKeyId!, service.ApnsTeamId!, service.ApnsBundleId!,
|
apnsPrivateKey, service.ApnsKeyId!, service.ApnsTeamId!, service.ApnsBundleId!,
|
||||||
tokens, message.Title, message.Body,
|
tokens, message.Title, message.Body,
|
||||||
message.ImageUrl, customData, ct);
|
message.ImageUrl, customData, ct);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user