From 34d33ac02630f5456b60f186f3dac8b842eabf62 Mon Sep 17 00:00:00 2001 From: joestarzxh Date: Fri, 9 Jul 2021 17:12:01 +0800 Subject: [PATCH] =?UTF-8?q?[feat]FeedWwwAuthenticate=E4=B8=AD=E4=BC=A0?= =?UTF-8?q?=E9=80=92string=E5=88=87=E7=89=87=EF=BC=8Crtsp=E8=AE=BA?= =?UTF-8?q?=E8=AF=81=E9=80=BB=E8=BE=91=E6=9C=89=E6=AD=A4=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/rtsp/auth.go | 12 +++++++++--- pkg/rtsp/client_command_session.go | 4 ++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/pkg/rtsp/auth.go b/pkg/rtsp/auth.go index b4b639d..7b8627b 100644 --- a/pkg/rtsp/auth.go +++ b/pkg/rtsp/auth.go @@ -34,11 +34,17 @@ type Auth struct { Algorithm string } -func (a *Auth) FeedWwwAuthenticate(s string, username, password string) { +func (a *Auth) FeedWwwAuthenticate(auths []string, username, password string) { a.Username = username a.Password = password - - s = strings.TrimPrefix(s, HeaderWwwAuthenticate) + //目前只处理第一个 + var s string + if len(auths)>0{ + s = auths[0] + }else{ + return + } + s = strings.TrimPrefix(s, HeaderWwwAuthenticate) s = strings.TrimSpace(s) if strings.HasPrefix(s, AuthTypeBasic) { a.Typ = AuthTypeBasic diff --git a/pkg/rtsp/client_command_session.go b/pkg/rtsp/client_command_session.go index 64dcb89..2783540 100644 --- a/pkg/rtsp/client_command_session.go +++ b/pkg/rtsp/client_command_session.go @@ -550,8 +550,8 @@ func (session *ClientCommandSession) writeCmdReadResp(method, uri string, header if ctx.StatusCode != "401" { return } - //目前只处理第一个 - session.auth.FeedWwwAuthenticate(ctx.Headers.Get(HeaderWwwAuthenticate), session.urlCtx.Username, session.urlCtx.Password) + + session.auth.FeedWwwAuthenticate(ctx.Headers.Values(HeaderWwwAuthenticate), session.urlCtx.Username, session.urlCtx.Password) } err = ErrRtsp