pub struct SigV4Signer { /* private fields */ }Expand description
Signs REST catalog requests the way Iceberg Java’s RESTSigV4AuthSession
does. Carries no credentials, so one signer serves every session.
Built with SigV4Signer::builder.
Implementations§
Source§impl SigV4Signer
impl SigV4Signer
Source§impl SigV4Signer
impl SigV4Signer
Sourcepub fn sign(
&self,
request: &mut HttpRequest,
credentials: &Credentials,
) -> Result<()>
pub fn sign( &self, request: &mut HttpRequest, credentials: &Credentials, ) -> Result<()>
Signs request in place. An existing Authorization moves to
Original-Authorization, and a caller’s x-amz-date,
x-amz-content-sha256 or x-amz-security-token that the signer
overwrites moves to Original-<name> (Java keeps a caller’s content
hash when there is a body). Userinfo leaves the URL, and a + in the
query becomes %20, so write a literal plus as %2B.
Uses credentials as given and never refreshes them: resolve temporary
ones from their provider before each call.
On error, including for a streaming body or a non-UTF-8 header, the request is left unchanged.
Send the result through a client that does not follow redirects: a
redirect replays the signature, and across hosts reqwest drops
Authorization but keeps Original-Authorization.
aws_sigv4 traces requests without redacting Original-Authorization.
A tracing subscriber is muted for the call, but the log bridge (no
subscriber, or log-always) still forwards those events, so keep
aws_sigv4 below trace level there.
Trait Implementations§
Source§impl Clone for SigV4Signer
impl Clone for SigV4Signer
Source§fn clone(&self) -> SigV4Signer
fn clone(&self) -> SigV4Signer
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for SigV4Signer
impl RefUnwindSafe for SigV4Signer
impl Send for SigV4Signer
impl Sync for SigV4Signer
impl Unpin for SigV4Signer
impl UnsafeUnpin for SigV4Signer
impl UnwindSafe for SigV4Signer
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read moreSource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: AsAny + ?Sized,
impl<T> Downcast for Twhere
T: AsAny + ?Sized,
§fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
Any.§fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
Any.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more