mirror of
https://github.com/khairul169/garage-webui.git
synced 2025-06-17 22:29:32 +07:00
29 lines
587 B
Go
29 lines
587 B
Go
|
package router
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"khairul169/garage-webui/utils"
|
||
|
"net/http"
|
||
|
"net/http/httputil"
|
||
|
"net/url"
|
||
|
"strings"
|
||
|
)
|
||
|
|
||
|
func ProxyHandler(w http.ResponseWriter, r *http.Request) {
|
||
|
target, err := url.Parse(utils.Garage.GetAdminEndpoint())
|
||
|
if err != nil {
|
||
|
utils.ResponseError(w, err)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
proxy := &httputil.ReverseProxy{
|
||
|
Rewrite: func(r *httputil.ProxyRequest) {
|
||
|
r.SetURL(target)
|
||
|
r.Out.URL.Path = strings.TrimPrefix(r.In.URL.Path, "/api")
|
||
|
r.Out.Header.Set("Authorization", fmt.Sprintf("Bearer %s", utils.Garage.GetAdminKey()))
|
||
|
},
|
||
|
}
|
||
|
|
||
|
proxy.ServeHTTP(w, r)
|
||
|
}
|