api.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package main
  2. import (
  3. "net/http"
  4. "imuslab.com/arozos/ReverseProxy/mod/auth"
  5. )
  6. /*
  7. API.go
  8. This file contains all the API called by the web management interface
  9. */
  10. func initAPIs() {
  11. authRouter := auth.NewManagedHTTPRouter(auth.RouterOption{
  12. AuthAgent: authAgent,
  13. RequireAuth: !(*noauth || handler.IsUsingExternalPermissionManager()),
  14. DeniedHandler: func(w http.ResponseWriter, r *http.Request) {
  15. http.Error(w, "401 - Unauthorized", http.StatusUnauthorized)
  16. },
  17. })
  18. //Register the standard web services urls
  19. fs := http.FileServer(http.Dir("./web"))
  20. http.Handle("/", fs)
  21. //Reverse proxy
  22. authRouter.HandleFunc("/enable", ReverseProxyHandleOnOff)
  23. authRouter.HandleFunc("/add", ReverseProxyHandleAddEndpoint)
  24. authRouter.HandleFunc("/status", ReverseProxyStatus)
  25. authRouter.HandleFunc("/list", ReverseProxyList)
  26. authRouter.HandleFunc("/del", DeleteProxyEndpoint)
  27. authRouter.HandleFunc("/setIncoming", HandleIncomingPortSet)
  28. authRouter.HandleFunc("/useHttpsRedirect", HandleUpdateHttpsRedirect)
  29. //TLS / SSL config
  30. authRouter.HandleFunc("/cert/tls", handleToggleTLSProxy)
  31. authRouter.HandleFunc("/cert/upload", handleCertUpload)
  32. authRouter.HandleFunc("/cert/list", handleListCertificate)
  33. authRouter.HandleFunc("/cert/checkDefault", handleDefaultCertCheck)
  34. authRouter.HandleFunc("/cert/delete", handleCertRemove)
  35. //Redirection config
  36. authRouter.HandleFunc("/redirect/list", handleListRedirectionRules)
  37. authRouter.HandleFunc("/redirect/add", handleAddRedirectionRule)
  38. authRouter.HandleFunc("/redirect/delete", handleDeleteRedirectionRule)
  39. }