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 Upgrade $http_upgrade;
|
||||||
proxy_set_header Connection $http_connection;
|
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}}
|
||||||
{{#if (String.Equal env.BW_ENABLE_EVENTS "true")}}
|
{{#if (String.Equal env.BW_ENABLE_EVENTS "true")}}
|
||||||
|
|
||||||
|
@ -10,10 +10,12 @@ namespace Bit.Notifications;
|
|||||||
public class SendController : Controller
|
public class SendController : Controller
|
||||||
{
|
{
|
||||||
private readonly IHubContext<NotificationsHub> _hubContext;
|
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;
|
_hubContext = hubContext;
|
||||||
|
_anonymousHubContext = anonymousHubContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost("~/send")]
|
[HttpPost("~/send")]
|
||||||
@ -25,7 +27,7 @@ public class SendController : Controller
|
|||||||
var notificationJson = await reader.ReadToEndAsync();
|
var notificationJson = await reader.ReadToEndAsync();
|
||||||
if (!string.IsNullOrWhiteSpace(notificationJson))
|
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)
|
CancellationToken cancellationToken = default(CancellationToken)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
var notification = JsonSerializer.Deserialize<PushNotificationData<object>>(notificationJson);
|
var notification = JsonSerializer.Deserialize<PushNotificationData<object>>(notificationJson, _deserializerOptions);
|
||||||
switch (notification.Type)
|
switch (notification.Type)
|
||||||
{
|
{
|
||||||
case PushType.SyncCipherUpdate:
|
case PushType.SyncCipherUpdate:
|
||||||
|
@ -132,6 +132,12 @@ server {
|
|||||||
proxy_set_header Connection $http_connection;
|
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/ {
|
location /events/ {
|
||||||
proxy_pass http://events:5000/;
|
proxy_pass http://events:5000/;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user