mirror of
https://gitlab.computer.surgery/matrix/grapevine.git
synced 2025-12-16 15:21:24 +01:00
Bump ruma to e8b0876dda083433a7f9181d47d0aff5a5e05497 (auth check return type change)
This commit is contained in:
parent
644639ad10
commit
d8ec961589
5 changed files with 25 additions and 53 deletions
22
Cargo.lock
generated
22
Cargo.lock
generated
|
|
@ -2442,7 +2442,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ruma"
|
name = "ruma"
|
||||||
version = "0.12.1"
|
version = "0.12.1"
|
||||||
source = "git+https://github.com/ruma/ruma.git?rev=d84760a925d8e5830d668b031fec53ddf9101814#d84760a925d8e5830d668b031fec53ddf9101814"
|
source = "git+https://github.com/ruma/ruma.git?rev=e8b0876dda083433a7f9181d47d0aff5a5e05497#e8b0876dda083433a7f9181d47d0aff5a5e05497"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"assign",
|
"assign",
|
||||||
"js_int",
|
"js_int",
|
||||||
|
|
@ -2461,7 +2461,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ruma-appservice-api"
|
name = "ruma-appservice-api"
|
||||||
version = "0.12.1"
|
version = "0.12.1"
|
||||||
source = "git+https://github.com/ruma/ruma.git?rev=d84760a925d8e5830d668b031fec53ddf9101814#d84760a925d8e5830d668b031fec53ddf9101814"
|
source = "git+https://github.com/ruma/ruma.git?rev=e8b0876dda083433a7f9181d47d0aff5a5e05497#e8b0876dda083433a7f9181d47d0aff5a5e05497"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"js_int",
|
"js_int",
|
||||||
"ruma-common",
|
"ruma-common",
|
||||||
|
|
@ -2473,7 +2473,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ruma-client-api"
|
name = "ruma-client-api"
|
||||||
version = "0.20.1"
|
version = "0.20.1"
|
||||||
source = "git+https://github.com/ruma/ruma.git?rev=d84760a925d8e5830d668b031fec53ddf9101814#d84760a925d8e5830d668b031fec53ddf9101814"
|
source = "git+https://github.com/ruma/ruma.git?rev=e8b0876dda083433a7f9181d47d0aff5a5e05497#e8b0876dda083433a7f9181d47d0aff5a5e05497"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"as_variant",
|
"as_variant",
|
||||||
"assign",
|
"assign",
|
||||||
|
|
@ -2496,7 +2496,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ruma-common"
|
name = "ruma-common"
|
||||||
version = "0.15.1"
|
version = "0.15.1"
|
||||||
source = "git+https://github.com/ruma/ruma.git?rev=d84760a925d8e5830d668b031fec53ddf9101814#d84760a925d8e5830d668b031fec53ddf9101814"
|
source = "git+https://github.com/ruma/ruma.git?rev=e8b0876dda083433a7f9181d47d0aff5a5e05497#e8b0876dda083433a7f9181d47d0aff5a5e05497"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"as_variant",
|
"as_variant",
|
||||||
"base64",
|
"base64",
|
||||||
|
|
@ -2527,7 +2527,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ruma-events"
|
name = "ruma-events"
|
||||||
version = "0.30.1"
|
version = "0.30.1"
|
||||||
source = "git+https://github.com/ruma/ruma.git?rev=d84760a925d8e5830d668b031fec53ddf9101814#d84760a925d8e5830d668b031fec53ddf9101814"
|
source = "git+https://github.com/ruma/ruma.git?rev=e8b0876dda083433a7f9181d47d0aff5a5e05497#e8b0876dda083433a7f9181d47d0aff5a5e05497"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"as_variant",
|
"as_variant",
|
||||||
"indexmap 2.10.0",
|
"indexmap 2.10.0",
|
||||||
|
|
@ -2550,7 +2550,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ruma-federation-api"
|
name = "ruma-federation-api"
|
||||||
version = "0.11.0"
|
version = "0.11.0"
|
||||||
source = "git+https://github.com/ruma/ruma.git?rev=d84760a925d8e5830d668b031fec53ddf9101814#d84760a925d8e5830d668b031fec53ddf9101814"
|
source = "git+https://github.com/ruma/ruma.git?rev=e8b0876dda083433a7f9181d47d0aff5a5e05497#e8b0876dda083433a7f9181d47d0aff5a5e05497"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bytes",
|
"bytes",
|
||||||
"headers",
|
"headers",
|
||||||
|
|
@ -2572,7 +2572,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ruma-identifiers-validation"
|
name = "ruma-identifiers-validation"
|
||||||
version = "0.10.1"
|
version = "0.10.1"
|
||||||
source = "git+https://github.com/ruma/ruma.git?rev=d84760a925d8e5830d668b031fec53ddf9101814#d84760a925d8e5830d668b031fec53ddf9101814"
|
source = "git+https://github.com/ruma/ruma.git?rev=e8b0876dda083433a7f9181d47d0aff5a5e05497#e8b0876dda083433a7f9181d47d0aff5a5e05497"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"js_int",
|
"js_int",
|
||||||
"thiserror 2.0.12",
|
"thiserror 2.0.12",
|
||||||
|
|
@ -2581,7 +2581,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ruma-macros"
|
name = "ruma-macros"
|
||||||
version = "0.15.1"
|
version = "0.15.1"
|
||||||
source = "git+https://github.com/ruma/ruma.git?rev=d84760a925d8e5830d668b031fec53ddf9101814#d84760a925d8e5830d668b031fec53ddf9101814"
|
source = "git+https://github.com/ruma/ruma.git?rev=e8b0876dda083433a7f9181d47d0aff5a5e05497#e8b0876dda083433a7f9181d47d0aff5a5e05497"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"proc-macro-crate",
|
"proc-macro-crate",
|
||||||
|
|
@ -2596,7 +2596,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ruma-push-gateway-api"
|
name = "ruma-push-gateway-api"
|
||||||
version = "0.11.0"
|
version = "0.11.0"
|
||||||
source = "git+https://github.com/ruma/ruma.git?rev=d84760a925d8e5830d668b031fec53ddf9101814#d84760a925d8e5830d668b031fec53ddf9101814"
|
source = "git+https://github.com/ruma/ruma.git?rev=e8b0876dda083433a7f9181d47d0aff5a5e05497#e8b0876dda083433a7f9181d47d0aff5a5e05497"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"js_int",
|
"js_int",
|
||||||
"ruma-common",
|
"ruma-common",
|
||||||
|
|
@ -2608,7 +2608,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ruma-signatures"
|
name = "ruma-signatures"
|
||||||
version = "0.17.0"
|
version = "0.17.0"
|
||||||
source = "git+https://github.com/ruma/ruma.git?rev=d84760a925d8e5830d668b031fec53ddf9101814#d84760a925d8e5830d668b031fec53ddf9101814"
|
source = "git+https://github.com/ruma/ruma.git?rev=e8b0876dda083433a7f9181d47d0aff5a5e05497#e8b0876dda083433a7f9181d47d0aff5a5e05497"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64",
|
"base64",
|
||||||
"ed25519-dalek",
|
"ed25519-dalek",
|
||||||
|
|
@ -2624,7 +2624,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ruma-state-res"
|
name = "ruma-state-res"
|
||||||
version = "0.13.0"
|
version = "0.13.0"
|
||||||
source = "git+https://github.com/ruma/ruma.git?rev=d84760a925d8e5830d668b031fec53ddf9101814#d84760a925d8e5830d668b031fec53ddf9101814"
|
source = "git+https://github.com/ruma/ruma.git?rev=e8b0876dda083433a7f9181d47d0aff5a5e05497#e8b0876dda083433a7f9181d47d0aff5a5e05497"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"js_int",
|
"js_int",
|
||||||
"ruma-common",
|
"ruma-common",
|
||||||
|
|
|
||||||
|
|
@ -145,7 +145,7 @@ xdg = "2.5.2"
|
||||||
|
|
||||||
[dependencies.ruma]
|
[dependencies.ruma]
|
||||||
git = "https://github.com/ruma/ruma.git"
|
git = "https://github.com/ruma/ruma.git"
|
||||||
rev = "d84760a925d8e5830d668b031fec53ddf9101814"
|
rev = "e8b0876dda083433a7f9181d47d0aff5a5e05497"
|
||||||
features = [
|
features = [
|
||||||
"compat-server-signing-key-version",
|
"compat-server-signing-key-version",
|
||||||
"compat-empty-string-null",
|
"compat-empty-string-null",
|
||||||
|
|
|
||||||
|
|
@ -1036,7 +1036,7 @@ async fn join_room_by_id_helper(
|
||||||
}
|
}
|
||||||
|
|
||||||
info!("Running send_join auth check");
|
info!("Running send_join auth check");
|
||||||
let authenticated = state_res::event_auth::auth_check(
|
state_res::event_auth::auth_check(
|
||||||
&state_res::RoomVersion::new(&room_version_id).map_err(|_| {
|
&state_res::RoomVersion::new(&room_version_id).map_err(|_| {
|
||||||
Error::UnsupportedRoomVersion(room_version_id.clone())
|
Error::UnsupportedRoomVersion(room_version_id.clone())
|
||||||
})?,
|
})?,
|
||||||
|
|
@ -1065,13 +1065,6 @@ async fn join_room_by_id_helper(
|
||||||
Error::BadRequest(ErrorKind::InvalidParam, "Auth check failed")
|
Error::BadRequest(ErrorKind::InvalidParam, "Auth check failed")
|
||||||
})?;
|
})?;
|
||||||
|
|
||||||
if !authenticated {
|
|
||||||
return Err(Error::BadRequest(
|
|
||||||
ErrorKind::InvalidParam,
|
|
||||||
"Auth check failed",
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
info!("Saving state from send_join");
|
info!("Saving state from send_join");
|
||||||
let (statehash_before_join, new, removed) =
|
let (statehash_before_join, new, removed) =
|
||||||
services().rooms.state_compressor.save_state(
|
services().rooms.state_compressor.save_state(
|
||||||
|
|
|
||||||
|
|
@ -501,19 +501,14 @@ impl Service {
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
if !state_res::event_auth::auth_check(
|
state_res::event_auth::auth_check(
|
||||||
&ruma_room_version,
|
&ruma_room_version,
|
||||||
&incoming_pdu,
|
&incoming_pdu,
|
||||||
|k, s| auth_events.get(&(k.to_string().into(), s.to_owned())),
|
|k, s| auth_events.get(&(k.to_string().into(), s.to_owned())),
|
||||||
)
|
)
|
||||||
.map_err(|_e| {
|
.map_err(|_e| {
|
||||||
Error::BadRequest(ErrorKind::InvalidParam, "Auth check failed")
|
Error::BadRequest(ErrorKind::InvalidParam, "Auth check failed")
|
||||||
})? {
|
})?;
|
||||||
return Err(Error::BadRequest(
|
|
||||||
ErrorKind::InvalidParam,
|
|
||||||
"Auth check failed",
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
debug!("Validation successful");
|
debug!("Validation successful");
|
||||||
|
|
||||||
|
|
@ -869,7 +864,7 @@ impl Service {
|
||||||
debug!("Starting auth check");
|
debug!("Starting auth check");
|
||||||
// 11. Check the auth of the event passes based on the state of the
|
// 11. Check the auth of the event passes based on the state of the
|
||||||
// event
|
// event
|
||||||
let check_result = state_res::event_auth::auth_check(
|
state_res::event_auth::auth_check(
|
||||||
&ruma_room_version,
|
&ruma_room_version,
|
||||||
&incoming_pdu,
|
&incoming_pdu,
|
||||||
|k, s| {
|
|k, s| {
|
||||||
|
|
@ -895,12 +890,6 @@ impl Service {
|
||||||
.map_err(|_e| {
|
.map_err(|_e| {
|
||||||
Error::BadRequest(ErrorKind::InvalidParam, "Auth check failed.")
|
Error::BadRequest(ErrorKind::InvalidParam, "Auth check failed.")
|
||||||
})?;
|
})?;
|
||||||
|
|
||||||
if !check_result {
|
|
||||||
return Err(Error::bad_database(
|
|
||||||
"Event has failed auth check with state at the event.",
|
|
||||||
));
|
|
||||||
}
|
|
||||||
debug!("Auth check succeeded");
|
debug!("Auth check succeeded");
|
||||||
|
|
||||||
// Soft fail check before doing state res
|
// Soft fail check before doing state res
|
||||||
|
|
@ -912,14 +901,12 @@ impl Service {
|
||||||
&incoming_pdu.content,
|
&incoming_pdu.content,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
let auth_fail_against_current = !state_res::event_auth::auth_check(
|
let auth_fail_against_current = state_res::event_auth::auth_check(
|
||||||
&ruma_room_version,
|
&ruma_room_version,
|
||||||
&incoming_pdu,
|
&incoming_pdu,
|
||||||
|k, s| auth_events.get(&(k.clone(), s.to_owned())),
|
|k, s| auth_events.get(&(k.clone(), s.to_owned())),
|
||||||
)
|
)
|
||||||
.map_err(|_e| {
|
.is_err();
|
||||||
Error::BadRequest(ErrorKind::InvalidParam, "Auth check failed.")
|
|
||||||
})?;
|
|
||||||
|
|
||||||
let cannot_redact = incoming_pdu.kind
|
let cannot_redact = incoming_pdu.kind
|
||||||
== TimelineEventType::RoomRedaction
|
== TimelineEventType::RoomRedaction
|
||||||
|
|
|
||||||
|
|
@ -844,21 +844,13 @@ impl Service {
|
||||||
signatures: None,
|
signatures: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
let auth_check =
|
state_res::auth_check(&ruma_room_version, &pdu, |k, s| {
|
||||||
state_res::auth_check(&ruma_room_version, &pdu, |k, s| {
|
auth_events.get(&(k.clone(), s.to_owned()))
|
||||||
auth_events.get(&(k.clone(), s.to_owned()))
|
})
|
||||||
})
|
.map_err(|error| {
|
||||||
.map_err(|error| {
|
error!(%error, "Auth check failed");
|
||||||
error!(%error, "Auth check failed");
|
Error::BadRequest(ErrorKind::InvalidParam, "Auth check failed.")
|
||||||
Error::BadDatabase("Auth check failed.")
|
})?;
|
||||||
})?;
|
|
||||||
|
|
||||||
if !auth_check {
|
|
||||||
return Err(Error::BadRequest(
|
|
||||||
ErrorKind::forbidden(),
|
|
||||||
"Event is not authorized.",
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Hash and sign
|
// Hash and sign
|
||||||
let mut pdu_json = utils::to_canonical_object(&pdu)
|
let mut pdu_json = utils::to_canonical_object(&pdu)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue