Browse Source

fix authentication with VLC

This fixes the case in which VLC is trying to read a path with a query
(i.e. stream?mykey=myval) and the path requires read credentials.
pull/1242/head
aler9 3 years ago
parent
commit
57015e2bf0
  1. 21
      internal/core/rtsp_session.go

21
internal/core/rtsp_session.go

@ -191,17 +191,18 @@ func (s *rtspSession) onSetup(c *rtspConn, ctx *gortsplib.ServerHandlerOnSetupCt @@ -191,17 +191,18 @@ func (s *rtspSession) onSetup(c *rtspConn, ctx *gortsplib.ServerHandlerOnSetupCt
pathPass conf.Credential,
) error {
baseURL := &url.URL{
Scheme: ctx.Request.URL.Scheme,
Host: ctx.Request.URL.Host,
Path: func() string {
pa := ctx.Path
if ctx.Query != "" {
pa += "?" + ctx.Query
}
pa += "/"
return pa
}(),
Scheme: ctx.Request.URL.Scheme,
Host: ctx.Request.URL.Host,
Path: ctx.Path,
RawQuery: ctx.Query,
}
if ctx.Query != "" {
baseURL.RawQuery += "/"
} else {
baseURL.Path += "/"
}
return c.authenticate(ctx.Path, ctx.Query, pathIPs, pathUser, pathPass, false, ctx.Request, baseURL)
},
})

Loading…
Cancel
Save