@@ -24,7 +24,6 @@ type Options struct {
24 ProxyPrefix string `flag:"proxy-prefix" cfg:"proxy_prefix"`
24 ProxyPrefix string `flag:"proxy-prefix" cfg:"proxy_prefix"`
25 PingPath string `flag:"ping-path" cfg:"ping_path"`
25 PingPath string `flag:"ping-path" cfg:"ping_path"`
26 PingUserAgent string `flag:"ping-user-agent" cfg:"ping_user_agent"`
26 PingUserAgent string `flag:"ping-user-agent" cfg:"ping_user_agent"`
27− ProxyWebSockets bool `flag:"proxy-websockets" cfg:"proxy_websockets"`
28 HTTPAddress string `flag:"http-address" cfg:"http_address"`
27 HTTPAddress string `flag:"http-address" cfg:"http_address"`
29 HTTPSAddress string `flag:"https-address" cfg:"https_address"`
28 HTTPSAddress string `flag:"https-address" cfg:"https_address"`
30 ReverseProxy bool `flag:"reverse-proxy" cfg:"reverse_proxy"`
29 ReverseProxy bool `flag:"reverse-proxy" cfg:"reverse_proxy"`
@@ -64,26 +63,26 @@ type Options struct {
64 Session SessionOptions `cfg:",squash"`
63 Session SessionOptions `cfg:",squash"`
65 Logging Logging `cfg:",squash"`
64 Logging Logging `cfg:",squash"`
67− Upstreams []string `flag:"upstream" cfg:"upstreams"`
66+ // Not used in the legacy config, name not allowed to match an external key (upstreams)
67+ // TODO(JoelSpeed): Rename when legacy config is removed
68+ UpstreamServers Upstreams `cfg:",internal"`
68− SkipAuthRegex []string `flag:"skip-auth-regex" cfg:"skip_auth_regex"`
70+ SkipAuthRegex []string `flag:"skip-auth-regex" cfg:"skip_auth_regex"`
69− SkipAuthStripHeaders bool `flag:"skip-auth-strip-headers" cfg:"skip_auth_strip_headers"`
71+ SkipAuthStripHeaders bool `flag:"skip-auth-strip-headers" cfg:"skip_auth_strip_headers"`
70− SkipJwtBearerTokens bool `flag:"skip-jwt-bearer-tokens" cfg:"skip_jwt_bearer_tokens"`
72+ SkipJwtBearerTokens bool `flag:"skip-jwt-bearer-tokens" cfg:"skip_jwt_bearer_tokens"`
71− ExtraJwtIssuers []string `flag:"extra-jwt-issuers" cfg:"extra_jwt_issuers"`
73+ ExtraJwtIssuers []string `flag:"extra-jwt-issuers" cfg:"extra_jwt_issuers"`
72− PassBasicAuth bool `flag:"pass-basic-auth" cfg:"pass_basic_auth"`
74+ PassBasicAuth bool `flag:"pass-basic-auth" cfg:"pass_basic_auth"`
73− SetBasicAuth bool `flag:"set-basic-auth" cfg:"set_basic_auth"`
75+ SetBasicAuth bool `flag:"set-basic-auth" cfg:"set_basic_auth"`
74− PreferEmailToUser bool `flag:"prefer-email-to-user" cfg:"prefer_email_to_user"`
76+ PreferEmailToUser bool `flag:"prefer-email-to-user" cfg:"prefer_email_to_user"`
75− BasicAuthPassword string `flag:"basic-auth-password" cfg:"basic_auth_password"`
77+ BasicAuthPassword string `flag:"basic-auth-password" cfg:"basic_auth_password"`
76− PassAccessToken bool `flag:"pass-access-token" cfg:"pass_access_token"`
78+ PassAccessToken bool `flag:"pass-access-token" cfg:"pass_access_token"`
77− PassHostHeader bool `flag:"pass-host-header" cfg:"pass_host_header"`
78− SkipProviderButton bool `flag:"skip-provider-button" cfg:"skip_provider_button"`
79+ SkipProviderButton bool `flag:"skip-provider-button" cfg:"skip_provider_button"`
79− PassUserHeaders bool `flag:"pass-user-headers" cfg:"pass_user_headers"`
80+ PassUserHeaders bool `flag:"pass-user-headers" cfg:"pass_user_headers"`
80− SSLInsecureSkipVerify bool `flag:"ssl-insecure-skip-verify" cfg:"ssl_insecure_skip_verify"`
81+ SSLInsecureSkipVerify bool `flag:"ssl-insecure-skip-verify" cfg:"ssl_insecure_skip_verify"`
81− SSLUpstreamInsecureSkipVerify bool `flag:"ssl-upstream-insecure-skip-verify" cfg:"ssl_upstream_insecure_skip_verify"`
82− SetXAuthRequest bool `flag:"set-xauthrequest" cfg:"set_xauthrequest"`
82+ SetXAuthRequest bool `flag:"set-xauthrequest" cfg:"set_xauthrequest"`
83− SetAuthorization bool `flag:"set-authorization-header" cfg:"set_authorization_header"`
83+ SetAuthorization bool `flag:"set-authorization-header" cfg:"set_authorization_header"`
84− PassAuthorization bool `flag:"pass-authorization-header" cfg:"pass_authorization_header"`
84+ PassAuthorization bool `flag:"pass-authorization-header" cfg:"pass_authorization_header"`
85− SkipAuthPreflight bool `flag:"skip-auth-preflight" cfg:"skip_auth_preflight"`
85+ SkipAuthPreflight bool `flag:"skip-auth-preflight" cfg:"skip_auth_preflight"`
86− FlushInterval time.Duration `flag:"flush-interval" cfg:"flush_interval"`
88 // These options allow for other providers besides Google, with
87 // These options allow for other providers besides Google, with
89 // potential overrides.
88 // potential overrides.
@@ -114,7 +113,6 @@ type Options struct {
115 // internal values that are set after config validation
114 // internal values that are set after config validation
116 redirectURL *url.URL
115 redirectURL *url.URL
117− proxyURLs []*url.URL
118 compiledRegex []*regexp.Regexp
116 compiledRegex []*regexp.Regexp
119 provider providers.Provider
117 provider providers.Provider
120 signatureData *SignatureData
118 signatureData *SignatureData
@@ -125,7 +123,6 @@ type Options struct {
126// Options for Getting internal values
124// Options for Getting internal values
127func (o *Options) GetRedirectURL() *url.URL { return o.redirectURL }
125func (o *Options) GetRedirectURL() *url.URL { return o.redirectURL }
128−func (o *Options) GetProxyURLs() []*url.URL { return o.proxyURLs }
129func (o *Options) GetCompiledRegex() []*regexp.Regexp { return o.compiledRegex }
126func (o *Options) GetCompiledRegex() []*regexp.Regexp { return o.compiledRegex }
130func (o *Options) GetProvider() providers.Provider { return o.provider }
127func (o *Options) GetProvider() providers.Provider { return o.provider }
131func (o *Options) GetSignatureData() *SignatureData { return o.signatureData }
128func (o *Options) GetSignatureData() *SignatureData { return o.signatureData }
@@ -135,7 +132,6 @@ func (o *Options) GetRealClientIPParser() ipapi.RealClientIPParser { return o.re
136// Options for Setting internal values
133// Options for Setting internal values
137func (o *Options) SetRedirectURL(s *url.URL) { o.redirectURL = s }
134func (o *Options) SetRedirectURL(s *url.URL) { o.redirectURL = s }
138−func (o *Options) SetProxyURLs(s []*url.URL) { o.proxyURLs = s }
139func (o *Options) SetCompiledRegex(s []*regexp.Regexp) { o.compiledRegex = s }
135func (o *Options) SetCompiledRegex(s []*regexp.Regexp) { o.compiledRegex = s }
140func (o *Options) SetProvider(s providers.Provider) { o.provider = s }
136func (o *Options) SetProvider(s providers.Provider) { o.provider = s }
141func (o *Options) SetSignatureData(s *SignatureData) { o.signatureData = s }
137func (o *Options) SetSignatureData(s *SignatureData) { o.signatureData = s }
@@ -149,7 +145,6 @@ func NewOptions() *Options {
149 ProxyPrefix: "/oauth2",
145 ProxyPrefix: "/oauth2",
150 ProviderType: "google",
146 ProviderType: "google",
151 PingPath: "/ping",
147 PingPath: "/ping",
152− ProxyWebSockets: true,
153 HTTPAddress: "127.0.0.1:4180",
148 HTTPAddress: "127.0.0.1:4180",
154 HTTPSAddress: ":443",
149 HTTPSAddress: ":443",
155 RealClientIPHeader: "X-Real-IP",
150 RealClientIPHeader: "X-Real-IP",
@@ -160,13 +155,10 @@ func NewOptions() *Options {
160 AzureTenant: "common",
155 AzureTenant: "common",
161 SetXAuthRequest: false,
156 SetXAuthRequest: false,
162 SkipAuthPreflight: false,
157 SkipAuthPreflight: false,
163− SkipAuthStripHeaders: false,
164− FlushInterval: time.Duration(1) * time.Second,
165 PassBasicAuth: true,
158 PassBasicAuth: true,
166 SetBasicAuth: false,
159 SetBasicAuth: false,
167 PassUserHeaders: true,
160 PassUserHeaders: true,
168 PassAccessToken: false,
161 PassAccessToken: false,
169− PassHostHeader: true,
170 SetAuthorization: false,
162 SetAuthorization: false,
171 PassAuthorization: false,
163 PassAuthorization: false,
172 PreferEmailToUser: false,
164 PreferEmailToUser: false,