fix(server): include path prefix in legacy API calls (#615) (#618)

Resolves 404 errors by correctly routing legacy requests when a path
prefix is configured.
This commit is contained in:
LDwise
2026-01-24 17:43:28 +08:00
committed by GitHub
parent 7624bbb6c1
commit 76051c47d9
3 changed files with 12 additions and 6 deletions
+5 -2
View File
@@ -8,6 +8,7 @@ import (
"net"
"net/http"
"net/url"
"path"
"strings"
"time"
@@ -41,17 +42,19 @@ var (
type LegacyHandler struct {
logger zerolog.Logger
serverAddr string
pathPrefix string
bannedIPs map[string]struct{}
sessionIPs map[string]string
wsDialer *websocket.Dialer
}
func New(serverAddr string) *LegacyHandler {
func New(serverAddr, pathPrefix string) *LegacyHandler {
// Init
return &LegacyHandler{
logger: log.With().Str("module", "legacy").Logger(),
serverAddr: serverAddr,
pathPrefix: pathPrefix,
bannedIPs: make(map[string]struct{}),
sessionIPs: make(map[string]string),
wsDialer: &websocket.Dialer{
@@ -102,7 +105,7 @@ func (h *LegacyHandler) Route(r types.Router) {
defer s.destroy()
// dial to the remote backend
connBackend, _, err := h.wsDialer.Dial("ws://"+h.serverAddr+"/api/ws?token="+url.QueryEscape(s.token), nil)
connBackend, _, err := h.wsDialer.Dial("ws://"+h.serverAddr+path.Join(s.pathPrefix, "/api/ws")+"?token="+url.QueryEscape(s.token), nil)
if err != nil {
h.logger.Error().Err(err).Msg("couldn't dial to the remote backend")