Jelajahi Sumber

Merge pull request #186 from vashstorm/bugfix

add auth for reload api
fatedier 8 tahun lalu
induk
melakukan
0573ddcd84
2 mengubah file dengan 15 tambahan dan 2 penghapusan
  1. 13 1
      src/cmd/frps/main.go
  2. 2 1
      src/models/server/dashboard.go

+ 13 - 1
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)

+ 2 - 1
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