From 292d5f8049508b733aa155610473c3c48144d3a5 Mon Sep 17 00:00:00 2001 From: eduard256 Date: Fri, 7 Nov 2025 18:31:19 +0300 Subject: [PATCH] Embed credentials in ONVIF device service URL when provided --- internal/camera/discovery/onvif_simple.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/internal/camera/discovery/onvif_simple.go b/internal/camera/discovery/onvif_simple.go index 7a83f23..02b457a 100644 --- a/internal/camera/discovery/onvif_simple.go +++ b/internal/camera/discovery/onvif_simple.go @@ -127,6 +127,16 @@ func (o *ONVIFDiscovery) discoverViaONVIF(ctx context.Context, ip, username, pas if len(profileStreams) > 0 { // Add ONVIF device service endpoint deviceServiceURL := fmt.Sprintf("http://%s/onvif/device_service", xaddr) + + // Embed credentials in URL if provided + if username != "" && password != "" { + u, err := url.Parse(deviceServiceURL) + if err == nil { + u.User = url.UserPassword(username, password) + deviceServiceURL = u.String() + } + } + streams = append(streams, models.DiscoveredStream{ URL: deviceServiceURL, Type: "ONVIF",