use aws_sdk_s3::config::Region;
use aws_sdk_s3::{Client, Config};
use aws_smithy_http_client::test_util::capture_request;
#[tracing_test::traced_test]
#[tokio::test]
async fn auth_scheme_preference_at_client_level_should_take_the_highest_priority() {
let (http_client, _) = capture_request(None);
let conf = Config::builder()
.http_client(http_client)
.region(Region::new("us-east-2"))
.with_test_defaults()
.auth_scheme_preference([aws_runtime::auth::sigv4::SCHEME_ID])
.build();
let client = Client::from_conf(conf);
let _ = client
.get_object()
.bucket("arn:aws:s3::123456789012:accesspoint/mfzwi23gnjvgw.mrap")
.key("doesnotmatter")
.send()
.await;
assert!(logs_contain(&format!(
"resolving identity scheme_id=AuthSchemeId {{ scheme_id: \"{auth_scheme_id_str}\" }}",
auth_scheme_id_str = aws_runtime::auth::sigv4::SCHEME_ID.inner(),
)));
}
#[tracing_test::traced_test]
#[tokio::test]
async fn auth_scheme_preference_at_operation_level_should_take_the_highest_priority() {
let (http_client, _) = capture_request(None);
let conf = Config::builder()
.http_client(http_client)
.region(Region::new("us-east-2"))
.with_test_defaults()
.build();
let client = Client::from_conf(conf);
let _ = client
.get_object()
.bucket("arn:aws:s3::123456789012:accesspoint/mfzwi23gnjvgw.mrap")
.key("doesnotmatter")
.customize()
.config_override(
Config::builder().auth_scheme_preference([aws_runtime::auth::sigv4::SCHEME_ID]),
)
.send()
.await;
assert!(logs_contain(&format!(
"resolving identity scheme_id=AuthSchemeId {{ scheme_id: \"{auth_scheme_id_str}\" }}",
auth_scheme_id_str = aws_runtime::auth::sigv4::SCHEME_ID.inner(),
)));
}