default.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package dynamicproxy
  2. import (
  3. "github.com/google/uuid"
  4. "imuslab.com/zoraxy/mod/dynamicproxy/loadbalance"
  5. "imuslab.com/zoraxy/mod/dynamicproxy/rewrite"
  6. )
  7. /*
  8. Default Provider
  9. This script provide the default options for all datatype
  10. provided by dynamicproxy module
  11. */
  12. // GetDefaultAuthenticationProvider return a default authentication provider
  13. func GetDefaultAuthenticationProvider() *AuthenticationProvider {
  14. return &AuthenticationProvider{
  15. AuthMethod: AuthMethodNone,
  16. BasicAuthCredentials: []*BasicAuthCredentials{},
  17. BasicAuthExceptionRules: []*BasicAuthExceptionRule{},
  18. BasicAuthGroupIDs: []string{},
  19. AutheliaURL: "",
  20. UseHTTPS: false,
  21. }
  22. }
  23. // GetDefaultHeaderRewriteRules return a default header rewrite rules
  24. func GetDefaultHeaderRewriteRules() *HeaderRewriteRules {
  25. return &HeaderRewriteRules{
  26. UserDefinedHeaders: []*rewrite.UserDefinedHeader{},
  27. RequestHostOverwrite: "",
  28. HSTSMaxAge: 0,
  29. EnablePermissionPolicyHeader: false,
  30. PermissionPolicy: nil,
  31. DisableHopByHopHeaderRemoval: false,
  32. }
  33. }
  34. // GetDefaultProxyEndpoint return a default proxy endpoint
  35. func GetDefaultProxyEndpoint() ProxyEndpoint {
  36. randomPrefix := uuid.New().String()
  37. return ProxyEndpoint{
  38. ProxyType: ProxyTypeHost,
  39. RootOrMatchingDomain: randomPrefix + ".internal",
  40. MatchingDomainAlias: []string{},
  41. ActiveOrigins: []*loadbalance.Upstream{},
  42. InactiveOrigins: []*loadbalance.Upstream{},
  43. UseStickySession: false,
  44. UseActiveLoadBalance: false,
  45. Disabled: false,
  46. BypassGlobalTLS: false,
  47. VirtualDirectories: []*VirtualDirectoryEndpoint{},
  48. HeaderRewriteRules: GetDefaultHeaderRewriteRules(),
  49. AuthenticationProvider: GetDefaultAuthenticationProvider(),
  50. RequireRateLimit: false,
  51. RateLimit: 0,
  52. DisableUptimeMonitor: false,
  53. AccessFilterUUID: "default",
  54. DefaultSiteOption: DefaultSite_InternalStaticWebServer,
  55. DefaultSiteValue: "",
  56. }
  57. }