From b2f56c9814850efb8c11b748bb0ae73a4213dc3e Mon Sep 17 00:00:00 2001 From: aler9 <46489434+aler9@users.noreply.github.com> Date: Thu, 31 Dec 2020 17:32:19 +0100 Subject: [PATCH] auth: change NewSender signature --- clientconn.go | 5 ++++- pkg/auth/package_test.go | 6 ++---- pkg/auth/sender.go | 6 +----- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/clientconn.go b/clientconn.go index c7c62dd0..861993ab 100644 --- a/clientconn.go +++ b/clientconn.go @@ -228,7 +228,10 @@ func (c *ClientConn) Do(req *base.Request) (*base.Response, error) { // setup authentication if res.StatusCode == base.StatusUnauthorized && req.URL.User != nil && c.sender == nil { - sender, err := auth.NewSender(res.Header["WWW-Authenticate"], req.URL.User) + pass, _ := req.URL.User.Password() + user := req.URL.User.Username() + + sender, err := auth.NewSender(res.Header["WWW-Authenticate"], user, pass) if err != nil { return nil, fmt.Errorf("unable to setup authentication: %s", err) } diff --git a/pkg/auth/package_test.go b/pkg/auth/package_test.go index 012af6d0..8e4a6a21 100644 --- a/pkg/auth/package_test.go +++ b/pkg/auth/package_test.go @@ -1,7 +1,6 @@ package auth import ( - "net/url" "testing" "github.com/stretchr/testify/require" @@ -34,7 +33,7 @@ func TestAuthMethods(t *testing.T) { va := NewValidator("testuser", "testpass", c.methods) wwwAuthenticate := va.GenerateHeader() - se, err := NewSender(wwwAuthenticate, url.UserPassword("testuser", "testpass")) + se, err := NewSender(wwwAuthenticate, "testuser", "testpass") require.NoError(t, err) authorization := se.GenerateHeader(base.Announce, base.MustParseURL("rtsp://myhost/mypath")) @@ -62,9 +61,8 @@ func TestAuthVLC(t *testing.T) { } { se := NewValidator("testuser", "testpass", []headers.AuthMethod{headers.AuthBasic, headers.AuthDigest}) - wwwAuthenticate := se.GenerateHeader() - va, err := NewSender(wwwAuthenticate, url.UserPassword("testuser", "testpass")) + va, err := NewSender(se.GenerateHeader(), "testuser", "testpass") require.NoError(t, err) authorization := va.GenerateHeader(base.Announce, base.MustParseURL(ca.clientURL)) diff --git a/pkg/auth/sender.go b/pkg/auth/sender.go index cccc7a0f..bca56313 100644 --- a/pkg/auth/sender.go +++ b/pkg/auth/sender.go @@ -3,7 +3,6 @@ package auth import ( "encoding/base64" "fmt" - "net/url" "strings" "github.com/aler9/gortsplib/pkg/base" @@ -21,10 +20,7 @@ type Sender struct { // NewSender allocates a Sender with the WWW-Authenticate header provided by // the server and a set of credentials. -func NewSender(v base.HeaderValue, userinfo *url.Userinfo) (*Sender, error) { - pass, _ := userinfo.Password() - user := userinfo.Username() - +func NewSender(v base.HeaderValue, user string, pass string) (*Sender, error) { // prefer digest if headerAuthDigest := func() string { for _, vi := range v {