mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-27 16:50:23 +00:00
46 lines
1.4 KiB
Go
46 lines
1.4 KiB
Go
|
package auth
|
||
|
|
||
|
import (
|
||
|
"github.com/aws/smithy-go/auth"
|
||
|
smithyhttp "github.com/aws/smithy-go/transport/http"
|
||
|
)
|
||
|
|
||
|
// HTTPAuthScheme is the SDK's internal implementation of smithyhttp.AuthScheme
|
||
|
// for pre-existing implementations where the signer was added to client
|
||
|
// config. SDK clients will key off of this type and ensure per-operation
|
||
|
// updates to those signers persist on the scheme itself.
|
||
|
type HTTPAuthScheme struct {
|
||
|
schemeID string
|
||
|
signer smithyhttp.Signer
|
||
|
}
|
||
|
|
||
|
var _ smithyhttp.AuthScheme = (*HTTPAuthScheme)(nil)
|
||
|
|
||
|
// NewHTTPAuthScheme returns an auth scheme instance with the given config.
|
||
|
func NewHTTPAuthScheme(schemeID string, signer smithyhttp.Signer) *HTTPAuthScheme {
|
||
|
return &HTTPAuthScheme{
|
||
|
schemeID: schemeID,
|
||
|
signer: signer,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// SchemeID identifies the auth scheme.
|
||
|
func (s *HTTPAuthScheme) SchemeID() string {
|
||
|
return s.schemeID
|
||
|
}
|
||
|
|
||
|
// IdentityResolver gets the identity resolver for the auth scheme.
|
||
|
func (s *HTTPAuthScheme) IdentityResolver(o auth.IdentityResolverOptions) auth.IdentityResolver {
|
||
|
return o.GetIdentityResolver(s.schemeID)
|
||
|
}
|
||
|
|
||
|
// Signer gets the signer for the auth scheme.
|
||
|
func (s *HTTPAuthScheme) Signer() smithyhttp.Signer {
|
||
|
return s.signer
|
||
|
}
|
||
|
|
||
|
// WithSigner returns a new instance of the auth scheme with the updated signer.
|
||
|
func (s *HTTPAuthScheme) WithSigner(signer smithyhttp.Signer) *HTTPAuthScheme {
|
||
|
return NewHTTPAuthScheme(s.schemeID, signer)
|
||
|
}
|