MCPcopy Index your code
hub / github.com/coder/coder / Auth

Method Auth

coderd/notifications/dispatch/smtptest/server.go:88–138  ·  view source on GitHub ↗

Auth is the handler for supported authenticators.

(mech string)

Source from the content-addressed store, hash-verified

86
87// Auth is the handler for supported authenticators.
88func (s *Session) Auth(mech string) (sasl.Server, error) {
89 s.backend.mu.Lock()
90 defer s.backend.mu.Unlock()
91
92 if s.backend.lastMsg == nil {
93 s.backend.lastMsg = &Message{AuthMech: mech}
94 }
95
96 switch mech {
97 case sasl.Plain:
98 return sasl.NewPlainServer(func(identity, username, password string) error {
99 s.backend.mu.Lock()
100 defer s.backend.mu.Unlock()
101
102 s.backend.lastMsg.Identity = identity
103 s.backend.lastMsg.Username = username
104 s.backend.lastMsg.Password = password
105
106 if s.backend.cfg.AcceptedIdentity != "" && identity != s.backend.cfg.AcceptedIdentity {
107 return xerrors.Errorf("unknown identity: %q", identity)
108 }
109 if username != s.backend.cfg.AcceptedUsername {
110 return xerrors.Errorf("unknown user: %q", username)
111 }
112 if password != s.backend.cfg.AcceptedPassword {
113 return xerrors.Errorf("incorrect password for username: %q", username)
114 }
115
116 return nil
117 }), nil
118 case sasl.Login:
119 return sasl.NewLoginServer(func(username, password string) error {
120 s.backend.mu.Lock()
121 defer s.backend.mu.Unlock()
122
123 s.backend.lastMsg.Username = username
124 s.backend.lastMsg.Password = password
125
126 if username != s.backend.cfg.AcceptedUsername {
127 return xerrors.Errorf("unknown user: %q", username)
128 }
129 if password != s.backend.cfg.AcceptedPassword {
130 return xerrors.Errorf("incorrect password for username: %q", username)
131 }
132
133 return nil
134 }), nil
135 default:
136 return nil, xerrors.Errorf("unexpected auth mechanism: %q", mech)
137 }
138}
139
140func (s *Session) Mail(from string, _ *smtp.MailOptions) error {
141 s.backend.mu.Lock()

Callers 1

dispatchMethod · 0.80

Calls 3

LockMethod · 0.45
UnlockMethod · 0.45
ErrorfMethod · 0.45

Tested by

no test coverage detected