auth_schemes.go

 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}