package customizations
import (
v4
)
type signerVersionKey struct{}
func ( context.Context) ( string) {
, _ = middleware.GetStackValue(, signerVersionKey{}).(string)
return
}
func ( context.Context, string) context.Context {
return middleware.WithStackValue(, signerVersionKey{}, )
}
type SignHTTPRequestMiddlewareOptions struct {
CredentialsProvider aws.CredentialsProvider
LogSigning bool
V4Signer v4.HTTPSigner
V4aSigner v4a.HTTPSigner
}
func ( SignHTTPRequestMiddlewareOptions) *SignHTTPRequestMiddleware {
return &SignHTTPRequestMiddleware{
credentialsProvider: .CredentialsProvider,
v4Signer: .V4Signer,
v4aSigner: .V4aSigner,
logSigning: .LogSigning,
}
}
type SignHTTPRequestMiddleware struct {
credentialsProvider aws.CredentialsProvider
logSigning bool
v4Signer v4.HTTPSigner
v4aSigner v4a.HTTPSigner
}
func ( *SignHTTPRequestMiddleware) () string {
return "Signing"
}
func ( *SignHTTPRequestMiddleware) ( context.Context, middleware.FinalizeInput, middleware.FinalizeHandler) (
middleware.FinalizeOutput, middleware.Metadata, error,
) {
:= GetSignerVersion()
switch {
case v4a.Version:
, := .credentialsProvider.(v4a.CredentialsProvider)
if ! {
return , , fmt.Errorf("invalid credential-provider provided for sigV4a Signer")
}
:= v4a.NewSignHTTPRequestMiddleware(v4a.SignHTTPRequestMiddlewareOptions{
Credentials: ,
Signer: .v4aSigner,
LogSigning: .logSigning,
})
return .HandleFinalize(, , )
default:
:= v4.NewSignHTTPRequestMiddleware(v4.SignHTTPRequestMiddlewareOptions{
CredentialsProvider: .credentialsProvider,
Signer: .v4Signer,
LogSigning: .logSigning,
})
return .HandleFinalize(, , )
}
}
func ( *middleware.Stack, *SignHTTPRequestMiddleware) ( error) {
const = "Signing"
, := .Finalize.Get()
if {
_, = .Finalize.Swap(, )
} else {
= .Finalize.Add(, middleware.After)
}
return
}
type PresignHTTPRequestMiddlewareOptions struct {
CredentialsProvider aws.CredentialsProvider
V4Presigner v4.HTTPPresigner
V4aPresigner v4a.HTTPPresigner
LogSigning bool
}
type PresignHTTPRequestMiddleware struct {
credentialsProvider aws.CredentialsProvider
v4Signer v4.HTTPPresigner
v4aSigner v4a.HTTPPresigner
logSigning bool
}
func ( PresignHTTPRequestMiddlewareOptions) *PresignHTTPRequestMiddleware {
return &PresignHTTPRequestMiddleware{
credentialsProvider: .CredentialsProvider,
v4Signer: .V4Presigner,
v4aSigner: .V4aPresigner,
logSigning: .LogSigning,
}
}
func (*PresignHTTPRequestMiddleware) () string { return "PresignHTTPRequest" }
func ( *PresignHTTPRequestMiddleware) (
context.Context, middleware.FinalizeInput, middleware.FinalizeHandler,
) (
middleware.FinalizeOutput, middleware.Metadata, error,
) {
:= GetSignerVersion()
switch {
case v4a.Version:
, := .credentialsProvider.(v4a.CredentialsProvider)
if ! {
return , , fmt.Errorf("invalid credential-provider provided for sigV4a Signer")
}
:= v4a.NewPresignHTTPRequestMiddleware(v4a.PresignHTTPRequestMiddlewareOptions{
CredentialsProvider: ,
Presigner: .v4aSigner,
LogSigning: .logSigning,
})
return .HandleFinalize(, , )
default:
:= v4.NewPresignHTTPRequestMiddleware(v4.PresignHTTPRequestMiddlewareOptions{
CredentialsProvider: .credentialsProvider,
Presigner: .v4Signer,
LogSigning: .logSigning,
})
return .HandleFinalize(, , )
}
}
func ( *middleware.Stack, *PresignHTTPRequestMiddleware) ( error) {
const = "PresignHTTPRequest"
, := .Finalize.Get()
if {
_, = .Finalize.Swap(, )
} else {
= .Finalize.Add(, middleware.After)
}
return
}