mirror of
https://github.com/jackc/pgx.git
synced 2025-04-28 05:37:41 +00:00
Stop ignoring ErrorResponse during SCRAM auth
The server may send back an ErrorResponse during SCRAM auth, and these messages may contain useful information that described why authentication failed. For example, if the password was invalid.
This commit is contained in:
parent
0135721378
commit
1d398317ca
@ -78,12 +78,14 @@ func (c *PgConn) rxSASLContinue() (*pgproto3.AuthenticationSASLContinue, error)
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
saslContinue, ok := msg.(*pgproto3.AuthenticationSASLContinue)
|
switch m := msg.(type) {
|
||||||
if ok {
|
case *pgproto3.AuthenticationSASLContinue:
|
||||||
return saslContinue, nil
|
return m, nil
|
||||||
|
case *pgproto3.ErrorResponse:
|
||||||
|
return nil, ErrorResponseToPgError(m)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil, errors.New("expected AuthenticationSASLContinue message but received unexpected message")
|
return nil, fmt.Errorf("expected AuthenticationSASLContinue message but received unexpected message %T", msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *PgConn) rxSASLFinal() (*pgproto3.AuthenticationSASLFinal, error) {
|
func (c *PgConn) rxSASLFinal() (*pgproto3.AuthenticationSASLFinal, error) {
|
||||||
@ -91,12 +93,14 @@ func (c *PgConn) rxSASLFinal() (*pgproto3.AuthenticationSASLFinal, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
saslFinal, ok := msg.(*pgproto3.AuthenticationSASLFinal)
|
switch m := msg.(type) {
|
||||||
if ok {
|
case *pgproto3.AuthenticationSASLFinal:
|
||||||
return saslFinal, nil
|
return m, nil
|
||||||
|
case *pgproto3.ErrorResponse:
|
||||||
|
return nil, ErrorResponseToPgError(m)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil, errors.New("expected AuthenticationSASLFinal message but received unexpected message")
|
return nil, fmt.Errorf("expected AuthenticationSASLFinal message but received unexpected message %T", msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
type scramClient struct {
|
type scramClient struct {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user