geforkt von mirrored/vaultwarden
Fix WebSocket notifications
Ignore a missing `id` query param; it's unclear what this ID represents, but it wasn't being used in the existing bitwarden_rs code, and no longer seems to be sent in the latest versions of the official clients.
Dieser Commit ist enthalten in:
Ursprung
255a06382d
Commit
862d401077
1 geänderte Dateien mit 6 neuen und 2 gelöschten Zeilen
|
@ -152,6 +152,9 @@ impl WSHandler {
|
||||||
impl Handler for WSHandler {
|
impl Handler for WSHandler {
|
||||||
fn on_open(&mut self, hs: Handshake) -> ws::Result<()> {
|
fn on_open(&mut self, hs: Handshake) -> ws::Result<()> {
|
||||||
// Path == "/notifications/hub?id=<id>==&access_token=<access_token>"
|
// Path == "/notifications/hub?id=<id>==&access_token=<access_token>"
|
||||||
|
//
|
||||||
|
// We don't use `id`, and as of around 2020-03-25, the official clients
|
||||||
|
// no longer seem to pass `id` (only `access_token`).
|
||||||
let path = hs.request.resource();
|
let path = hs.request.resource();
|
||||||
|
|
||||||
let (_id, access_token) = match path.split('?').nth(1) {
|
let (_id, access_token) = match path.split('?').nth(1) {
|
||||||
|
@ -170,10 +173,11 @@ impl Handler for WSHandler {
|
||||||
|
|
||||||
match (id, access_token) {
|
match (id, access_token) {
|
||||||
(Some(a), Some(b)) => (a, b),
|
(Some(a), Some(b)) => (a, b),
|
||||||
_ => return self.err("Missing id or access token"),
|
(None, Some(b)) => ("", b), // Ignore missing `id`.
|
||||||
|
_ => return self.err("Missing access token"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
None => return self.err("Missing query path"),
|
None => return self.err("Missing query parameters"),
|
||||||
};
|
};
|
||||||
|
|
||||||
// Validate the user
|
// Validate the user
|
||||||
|
|
Laden …
In neuem Issue referenzieren