auth: change NewSender signature

This commit is contained in:
aler9
2020-12-31 17:32:19 +01:00
parent a6ae5f79de
commit b2f56c9814
3 changed files with 7 additions and 10 deletions

View File

@@ -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)
}

View File

@@ -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))

View File

@@ -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 {