1package http
2
3import (
4 "context"
5
6 smithy "github.com/aws/smithy-go"
7 "github.com/aws/smithy-go/auth"
8)
9
10// NewAnonymousScheme returns the anonymous HTTP auth scheme.
11func NewAnonymousScheme() AuthScheme {
12 return &authScheme{
13 schemeID: auth.SchemeIDAnonymous,
14 signer: &nopSigner{},
15 }
16}
17
18// authScheme is parameterized to generically implement the exported AuthScheme
19// interface
20type authScheme struct {
21 schemeID string
22 signer Signer
23}
24
25var _ AuthScheme = (*authScheme)(nil)
26
27func (s *authScheme) SchemeID() string {
28 return s.schemeID
29}
30
31func (s *authScheme) IdentityResolver(o auth.IdentityResolverOptions) auth.IdentityResolver {
32 return o.GetIdentityResolver(s.schemeID)
33}
34
35func (s *authScheme) Signer() Signer {
36 return s.signer
37}
38
39type nopSigner struct{}
40
41var _ Signer = (*nopSigner)(nil)
42
43func (*nopSigner) SignRequest(context.Context, *Request, auth.Identity, smithy.Properties) error {
44 return nil
45}