Fix Autodiscover v2: Read email address from query parameters
This commit is contained in:
@@ -42,6 +42,7 @@ sha2 = "0.11"
|
||||
rkyv = { version = "0.8.10", features = ["little_endian"] }
|
||||
form-data = { version = "0.6.0", features = ["sync"], default-features = false }
|
||||
mime = "0.3.17"
|
||||
percent-encoding = "2.3.1"
|
||||
compact_str = "0.9.0"
|
||||
hashify = { version = "0.2" }
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@ use hyper::{
|
||||
service::service_fn,
|
||||
};
|
||||
use hyper_util::rt::TokioIo;
|
||||
use percent_encoding::percent_decode_str;
|
||||
use jmap::{
|
||||
api::{
|
||||
ToJmapHttpResponse, event_source::EventSourceHandler, request::RequestHandler,
|
||||
@@ -471,8 +472,12 @@ impl ParseHttp for Server {
|
||||
self.is_http_anonymous_request_allowed(session.remote_ip)
|
||||
.await?;
|
||||
|
||||
let path_email = path.find(|segment| segment.contains('@')).map(|segment| {
|
||||
percent_decode_str(segment).decode_utf8_lossy().into_owned()
|
||||
});
|
||||
|
||||
return self
|
||||
.handle_autodiscover_v2_request(req.uri().query())
|
||||
.handle_autodiscover_v2_request(req.uri().query(), path_email.as_deref())
|
||||
.await
|
||||
.map(|result| match result {
|
||||
Ok(resource) => resource.into_http_response(),
|
||||
|
||||
Reference in New Issue
Block a user