From e48f948456969f295f1250ab98156fc80e124bb8 Mon Sep 17 00:00:00 2001
From: Ethan Donowitz <8703826+ethowitz@users.noreply.github.com>
Date: Fri, 16 Dec 2022 14:07:17 -0500
Subject: [PATCH 1/7] chore: tag 0.13.1 (#1448)
---
CHANGELOG.md | 19 +++++++++++++++++++
Cargo.lock | 14 +++++++-------
syncserver-common/Cargo.toml | 2 +-
syncserver-db-common/Cargo.toml | 2 +-
syncserver-settings/Cargo.toml | 2 +-
syncserver/Cargo.toml | 2 +-
syncstorage-settings/Cargo.toml | 2 +-
tokenserver-common/Cargo.toml | 2 +-
tokenserver-settings/Cargo.toml | 2 +-
9 files changed, 33 insertions(+), 14 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 50891303..b0efabc0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,22 @@
+
+## 0.13.1 (2022-12-16)
+
+
+#### Features
+
+* add token type to Tokenserver log lines (#1445) ([0362bcab](https://github.com/mozilla-services/syncstorage-rs/commit/0362bcab3dd057de201915b918783b0a9a2de15e), closes [#1444](https://github.com/mozilla-services/syncstorage-rs/issues/1444))
+
+#### Bug Fixes
+
+* fix CORS issue (#1447) ([3f836b1e](https://github.com/mozilla-services/syncstorage-rs/commit/3f836b1e98997d98dd9671f957e5721330182b5f))
+
+#### Chore
+
+* remove `spanner_config.ini` (#1446) ([b9c1f7f6](https://github.com/mozilla-services/syncstorage-rs/commit/b9c1f7f67b5e4c99642d289a0e124f1053ec54b2))
+* upgrade to Rust 1.65 (#1441) ([b95e549a](https://github.com/mozilla-services/syncstorage-rs/commit/b95e549acbf2bb31c385eb50f60016da0f54e253))
+
+
+
## 0.13.0 (2022-11-14)
diff --git a/Cargo.lock b/Cargo.lock
index 20039197..ed940b41 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3001,7 +3001,7 @@ dependencies = [
[[package]]
name = "syncserver"
-version = "0.13.0"
+version = "0.13.1"
dependencies = [
"actix-cors",
"actix-http",
@@ -3073,7 +3073,7 @@ dependencies = [
[[package]]
name = "syncserver-common"
-version = "0.13.0"
+version = "0.13.1"
dependencies = [
"hkdf",
"sha2",
@@ -3081,7 +3081,7 @@ dependencies = [
[[package]]
name = "syncserver-db-common"
-version = "0.13.0"
+version = "0.13.1"
dependencies = [
"async-trait",
"backtrace",
@@ -3103,7 +3103,7 @@ dependencies = [
[[package]]
name = "syncserver-settings"
-version = "0.13.0"
+version = "0.13.1"
dependencies = [
"config 0.11.0",
"num_cpus",
@@ -3117,7 +3117,7 @@ dependencies = [
[[package]]
name = "syncstorage-settings"
-version = "0.13.0"
+version = "0.13.1"
dependencies = [
"rand 0.8.5",
"serde 1.0.135",
@@ -3298,7 +3298,7 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
[[package]]
name = "tokenserver-common"
-version = "0.13.0"
+version = "0.13.1"
dependencies = [
"actix-web",
"backtrace",
@@ -3311,7 +3311,7 @@ dependencies = [
[[package]]
name = "tokenserver-settings"
-version = "0.13.0"
+version = "0.13.1"
dependencies = [
"serde 1.0.135",
"tokenserver-common",
diff --git a/syncserver-common/Cargo.toml b/syncserver-common/Cargo.toml
index 913f644e..a8a0dea1 100644
--- a/syncserver-common/Cargo.toml
+++ b/syncserver-common/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "syncserver-common"
-version = "0.13.0"
+version = "0.13.1"
edition = "2021"
[dependencies]
diff --git a/syncserver-db-common/Cargo.toml b/syncserver-db-common/Cargo.toml
index 66907615..99e422db 100644
--- a/syncserver-db-common/Cargo.toml
+++ b/syncserver-db-common/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "syncserver-db-common"
-version = "0.13.0"
+version = "0.13.1"
edition = "2021"
[dependencies]
diff --git a/syncserver-settings/Cargo.toml b/syncserver-settings/Cargo.toml
index 88994fc3..90071b19 100644
--- a/syncserver-settings/Cargo.toml
+++ b/syncserver-settings/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "syncserver-settings"
-version = "0.13.0"
+version = "0.13.1"
edition = "2021"
[dependencies]
diff --git a/syncserver/Cargo.toml b/syncserver/Cargo.toml
index fb631a54..759fe464 100644
--- a/syncserver/Cargo.toml
+++ b/syncserver/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "syncserver"
-version = "0.13.0"
+version = "0.13.1"
license = "MPL-2.0"
authors = [
"Ben Bangert ",
diff --git a/syncstorage-settings/Cargo.toml b/syncstorage-settings/Cargo.toml
index addf7d9d..c6a989fa 100644
--- a/syncstorage-settings/Cargo.toml
+++ b/syncstorage-settings/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "syncstorage-settings"
-version = "0.13.0"
+version = "0.13.1"
edition = "2021"
[dependencies]
diff --git a/tokenserver-common/Cargo.toml b/tokenserver-common/Cargo.toml
index 367b8c50..1847cf11 100644
--- a/tokenserver-common/Cargo.toml
+++ b/tokenserver-common/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tokenserver-common"
-version = "0.13.0"
+version = "0.13.1"
edition = "2021"
[dependencies]
diff --git a/tokenserver-settings/Cargo.toml b/tokenserver-settings/Cargo.toml
index 12ea59fe..d6b4fa90 100644
--- a/tokenserver-settings/Cargo.toml
+++ b/tokenserver-settings/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "tokenserver-settings"
-version = "0.13.0"
+version = "0.13.1"
edition = "2021"
[dependencies]
From 973e90fae88f104b6fb66d4f49a1c76472816e4a Mon Sep 17 00:00:00 2001
From: Taddes
Date: Thu, 5 Jan 2023 14:24:46 -0500
Subject: [PATCH 2/7] refactor: convert middleware to `wrap_fn` paradigm
(#1374)
Closes #714
---
syncserver/src/server/mod.rs | 14 +-
syncserver/src/tokenserver/logging.rs | 90 ++++---------
syncserver/src/web/middleware/rejectua.rs | 92 ++++---------
syncserver/src/web/middleware/sentry.rs | 150 ++++++++--------------
syncserver/src/web/middleware/weave.rs | 100 +++++----------
5 files changed, 137 insertions(+), 309 deletions(-)
diff --git a/syncserver/src/server/mod.rs b/syncserver/src/server/mod.rs
index 7a0d80fd..9f7a3f80 100644
--- a/syncserver/src/server/mod.rs
+++ b/syncserver/src/server/mod.rs
@@ -93,10 +93,10 @@ macro_rules! build_app {
// These will wrap all outbound responses with matching status codes.
.wrap(ErrorHandlers::new().handler(StatusCode::NOT_FOUND, ApiError::render_404))
// These are our wrappers
- .wrap(middleware::weave::WeaveTimestamp::new())
- .wrap(tokenserver::logging::LoggingWrapper::new())
- .wrap(middleware::sentry::SentryWrapper::default())
- .wrap(middleware::rejectua::RejectUA::default())
+ .wrap_fn(middleware::weave::set_weave_timestamp)
+ .wrap_fn(tokenserver::logging::handle_request_log_line)
+ .wrap_fn(middleware::sentry::report_error)
+ .wrap_fn(middleware::rejectua::reject_user_agent)
.wrap($cors)
.wrap_fn(middleware::emit_http_status_with_tokenserver_origin)
.service(
@@ -198,9 +198,9 @@ macro_rules! build_app_without_syncstorage {
// These will wrap all outbound responses with matching status codes.
.wrap(ErrorHandlers::new().handler(StatusCode::NOT_FOUND, ApiError::render_404))
// These are our wrappers
- .wrap(middleware::sentry::SentryWrapper::default())
- .wrap(tokenserver::logging::LoggingWrapper::new())
- .wrap(middleware::rejectua::RejectUA::default())
+ .wrap_fn(middleware::sentry::report_error)
+ .wrap_fn(tokenserver::logging::handle_request_log_line)
+ .wrap_fn(middleware::rejectua::reject_user_agent)
// Followed by the "official middleware" so they run first.
// actix is getting increasingly tighter about CORS headers. Our server is
// not a huge risk but does deliver XHR JSON content.
diff --git a/syncserver/src/tokenserver/logging.rs b/syncserver/src/tokenserver/logging.rs
index c7006c7d..577f0b55 100644
--- a/syncserver/src/tokenserver/logging.rs
+++ b/syncserver/src/tokenserver/logging.rs
@@ -1,74 +1,30 @@
-use std::task::Context;
-use std::{cell::RefCell, rc::Rc};
-
use actix_web::{
- dev::{Service, ServiceRequest, ServiceResponse, Transform},
- Error, HttpMessage,
+ dev::{Service, ServiceRequest, ServiceResponse},
+ HttpMessage,
};
-use futures::future::{self, LocalBoxFuture, TryFutureExt};
-use std::task::Poll;
+use futures::future::Future;
use super::LogItems;
-#[derive(Default)]
-pub struct LoggingWrapper;
+pub fn handle_request_log_line(
+ request: ServiceRequest,
+ service: &mut impl Service<
+ Request = ServiceRequest,
+ Response = ServiceResponse,
+ Error = actix_web::Error,
+ >,
+) -> impl Future