mirror of
https://github.com/bitwarden/server.git
synced 2024-11-22 12:15:36 +01:00
Allow self-hosted notifications to work for Login with Device approval (#2934)
* Added anonymous hub context. * Added anonymous hub to nginx setup. * Added deserialization options to ignore case on deserialization.
This commit is contained in:
parent
a62d0c5e52
commit
c08e2a7473
@ -134,6 +134,13 @@ server {
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $http_connection;
|
||||
}
|
||||
|
||||
location /notifications/anonymous-hub {
|
||||
proxy_pass http://localhost:5006/anonymous-hub;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $http_connection;
|
||||
}
|
||||
|
||||
{{/if}}
|
||||
{{#if (String.Equal env.BW_ENABLE_EVENTS "true")}}
|
||||
|
||||
|
@ -10,10 +10,12 @@ namespace Bit.Notifications;
|
||||
public class SendController : Controller
|
||||
{
|
||||
private readonly IHubContext<NotificationsHub> _hubContext;
|
||||
private readonly IHubContext<AnonymousNotificationsHub> _anonymousHubContext;
|
||||
|
||||
public SendController(IHubContext<NotificationsHub> hubContext)
|
||||
public SendController(IHubContext<NotificationsHub> hubContext, IHubContext<AnonymousNotificationsHub> anonymousHubContext)
|
||||
{
|
||||
_hubContext = hubContext;
|
||||
_anonymousHubContext = anonymousHubContext;
|
||||
}
|
||||
|
||||
[HttpPost("~/send")]
|
||||
@ -25,7 +27,7 @@ public class SendController : Controller
|
||||
var notificationJson = await reader.ReadToEndAsync();
|
||||
if (!string.IsNullOrWhiteSpace(notificationJson))
|
||||
{
|
||||
await HubHelpers.SendNotificationToHubAsync(notificationJson, _hubContext, null);
|
||||
await HubHelpers.SendNotificationToHubAsync(notificationJson, _hubContext, _anonymousHubContext);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ public static class HubHelpers
|
||||
CancellationToken cancellationToken = default(CancellationToken)
|
||||
)
|
||||
{
|
||||
var notification = JsonSerializer.Deserialize<PushNotificationData<object>>(notificationJson);
|
||||
var notification = JsonSerializer.Deserialize<PushNotificationData<object>>(notificationJson, _deserializerOptions);
|
||||
switch (notification.Type)
|
||||
{
|
||||
case PushType.SyncCipherUpdate:
|
||||
|
@ -132,6 +132,12 @@ server {
|
||||
proxy_set_header Connection $http_connection;
|
||||
}
|
||||
|
||||
location /notifications/anonymous-hub {
|
||||
proxy_pass http://notifications:5000/anonymous-hub;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $http_connection;
|
||||
}
|
||||
|
||||
location /events/ {
|
||||
proxy_pass http://events:5000/;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user