diff --git a/src/cmd/frps/main.go b/src/cmd/frps/main.go index c4c38490..3459ce00 100644 --- a/src/cmd/frps/main.go +++ b/src/cmd/frps/main.go @@ -15,6 +15,7 @@ package main import ( + "encoding/base64" "encoding/json" "fmt" "io/ioutil" @@ -68,7 +69,18 @@ func main() { // reload check if args["--reload"] != nil { if args["--reload"].(bool) { - resp, err := http.Get("http://" + server.BindAddr + ":" + fmt.Sprintf("%d", server.DashboardPort) + "/api/reload") + req, err := http.NewRequest("GET", "http://"+server.BindAddr+":"+fmt.Sprintf("%d", server.DashboardPort)+"/api/reload", nil) + if err != nil { + fmt.Printf("frps reload error: %v\n", err) + os.Exit(1) + } + + authStr := "Basic " + base64.StdEncoding.EncodeToString([]byte(server.DashboardUsername+":"+server.DashboardPassword)) + + req.Header.Add("Authorization", authStr) + defaultClient := &http.Client{} + resp, err := defaultClient.Do(req) + if err != nil { fmt.Printf("frps reload error: %v\n", err) os.Exit(1) diff --git a/src/models/server/dashboard.go b/src/models/server/dashboard.go index 8cb201b8..6960108c 100644 --- a/src/models/server/dashboard.go +++ b/src/models/server/dashboard.go @@ -34,7 +34,8 @@ func RunDashboardServer(addr string, port int64) (err error) { // url router mux := http.NewServeMux() // api, see dashboard_api.go - mux.HandleFunc("/api/reload", apiReload) + // mux.HandleFunc("/api/reload", apiReload) + mux.HandleFunc("/api/reload", use(apiReload, basicAuth)) mux.HandleFunc("/api/proxies", apiProxies) // view, see dashboard_view.go