default.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. EnableWebsocketCustomHeaders: false,
  50. AuthenticationProvider: GetDefaultAuthenticationProvider(),
  51. RequireRateLimit: false,
  52. RateLimit: 0,
  53. DisableUptimeMonitor: false,
  54. AccessFilterUUID: "default",
  55. DefaultSiteOption: DefaultSite_InternalStaticWebServer,
  56. DefaultSiteValue: "",
  57. }
  58. }