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

Method sendAndReceiveSASLSCRAMv1

broker.go:1753–1779  ·  view source on GitHub ↗
(authSendReceiver func(authBytes []byte) (*SaslAuthenticateResponse, error), scramClient SCRAMClient)

Source from the content-addressed store, hash-verified

1751}
1752
1753func (b *Broker) sendAndReceiveSASLSCRAMv1(authSendReceiver func(authBytes []byte) (*SaslAuthenticateResponse, error), scramClient SCRAMClient) error {
1754 if err := scramClient.Begin(b.conf.Net.SASL.User, b.conf.Net.SASL.Password, b.conf.Net.SASL.SCRAMAuthzID); err != nil {
1755 return fmt.Errorf("failed to start SCRAM exchange with the server: %w", err)
1756 }
1757
1758 msg, err := scramClient.Step("")
1759 if err != nil {
1760 return fmt.Errorf("failed to advance the SCRAM exchange: %w", err)
1761 }
1762
1763 for !scramClient.Done() {
1764 res, err := authSendReceiver([]byte(msg))
1765 if err != nil {
1766 return err
1767 }
1768
1769 msg, err = scramClient.Step(string(res.SaslAuthBytes))
1770 if err != nil {
1771 Logger.Println("SASL authentication failed", err)
1772 return err
1773 }
1774 }
1775
1776 DebugLogger.Println("SASL authentication succeeded")
1777
1778 return nil
1779}
1780
1781func (b *Broker) createSaslAuthenticateRequest(msg []byte) *SaslAuthenticateRequest {
1782 authenticateRequest := SaslAuthenticateRequest{SaslAuthBytes: msg}

Callers 1

authenticateViaSASLv1Method · 0.95

Calls 5

BeginMethod · 0.65
ErrorfMethod · 0.65
StepMethod · 0.65
DoneMethod · 0.65
PrintlnMethod · 0.65

Tested by

no test coverage detected