MCPcopy
hub / github.com/IBM/sarama / sendAndReceiveSASLOAuth

Method sendAndReceiveSASLOAuth

broker.go:1668–1690  ·  view source on GitHub ↗

sendAndReceiveSASLOAuth performs the authentication flow as described by KIP-255 https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=75968876

(authSendReceiver func(authBytes []byte) (*SaslAuthenticateResponse, error), provider AccessTokenProvider)

Source from the content-addressed store, hash-verified

1666// sendAndReceiveSASLOAuth performs the authentication flow as described by KIP-255
1667// https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=75968876
1668func (b *Broker) sendAndReceiveSASLOAuth(authSendReceiver func(authBytes []byte) (*SaslAuthenticateResponse, error), provider AccessTokenProvider) error {
1669 token, err := provider.Token()
1670 if err != nil {
1671 return err
1672 }
1673
1674 message, err := buildClientFirstMessage(token)
1675 if err != nil {
1676 return err
1677 }
1678
1679 res, err := authSendReceiver(message)
1680 if err != nil {
1681 return err
1682 }
1683 isChallenge := len(res.SaslAuthBytes) > 0
1684
1685 if isChallenge {
1686 // Abort the token exchange. The broker returns the failure code.
1687 _, err = authSendReceiver([]byte(`\x01`))
1688 }
1689 return err
1690}
1691
1692func (b *Broker) sendAndReceiveSASLSCRAMv0() error {
1693 if err := b.sendAndReceiveSASLHandshake(b.conf.Net.SASL.Mechanism, SASLHandshakeV0); err != nil {

Callers 1

authenticateViaSASLv1Method · 0.95

Calls 2

buildClientFirstMessageFunction · 0.85
TokenMethod · 0.65

Tested by

no test coverage detected