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.
This commit is contained in:
aler9 2022-12-14 19:06:49 +01:00
parent 6524130ab9
commit 57015e2bf0
1 changed files with 11 additions and 10 deletions

View File

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