Skip to content

Commit 4c32c7b

Browse files
committed
Aggregator /register-signatures return 404 when signature with signed_message is unauthenticated
As there's no value to send it to the certifier since it will reject it anyway.
1 parent 2d6e9eb commit 4c32c7b

File tree

1 file changed

+22
-5
lines changed

1 file changed

+22
-5
lines changed

mithril-aggregator/src/http_server/routes/signatures_routes.rs

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,14 @@ mod handlers {
7171
.await,
7272
"single_signer_authenticator::error"
7373
);
74+
75+
if !signatures.is_authenticated() {
76+
debug!("register_signatures::unauthenticated_signature");
77+
return Ok(reply::bad_request(
78+
"Could not authenticate signature".to_string(),
79+
"Signature could not be authenticated".to_string(),
80+
));
81+
}
7482
}
7583

7684
match certifier_service
@@ -160,13 +168,11 @@ mod tests {
160168
}
161169

162170
#[tokio::test]
163-
async fn test_register_signatures_send_unauthenticated_signature_if_authentication_fail() {
171+
async fn test_register_signatures_return_404_if_authentication_fail() {
164172
let mut mock_certifier_service = MockCertifierService::new();
165173
mock_certifier_service
166174
.expect_register_single_signature()
167-
.withf(|_, signature| !signature.is_authenticated())
168-
.once()
169-
.return_once(move |_, _| Ok(RegistrationStatus::Registered));
175+
.never();
170176
let mut dependency_manager = initialize_dependencies().await;
171177
dependency_manager.certifier_service = Arc::new(mock_certifier_service);
172178
dependency_manager.single_signer_authenticator =
@@ -180,12 +186,23 @@ mod tests {
180186
let method = Method::POST.as_str();
181187
let path = "/register-signatures";
182188

183-
request()
189+
let response = request()
184190
.method(method)
185191
.path(&format!("/{SERVER_BASE_PATH}{path}"))
186192
.json(&message)
187193
.reply(&setup_router(Arc::new(dependency_manager)))
188194
.await;
195+
196+
APISpec::verify_conformity(
197+
APISpec::get_all_spec_files(),
198+
method,
199+
path,
200+
"application/json",
201+
&message,
202+
&response,
203+
&StatusCode::BAD_REQUEST,
204+
)
205+
.unwrap();
189206
}
190207

191208
#[tokio::test]

0 commit comments

Comments
 (0)