git.iko.soy/typeable/oauth2-proxy
on master help sign in
Allow to change provider's name (#296)

* Allow to change provider's name. * Add changelog entry. * Linting. * provider-name -> provider-display-name. * Add flag in main.go. * Update CHANGELOG.md

commit11205c739992f2a4f5a00a31300ed15513568d5d authorFelix Fontein <ff@dybuster.com> dateMon 25 Nov 2019, 18:20 (7 years ago) parentca0b837
6 files changed+57−47
CHANGELOG.md+1 docs/2_auth.md+1 docs/configuration/configuration.md+1 main.go+1 oauthproxy.go+52−47 options.go+1
CHANGELOG.md+1
@@ -17,6 +17,7 @@
1717- [#248](https://github.com/pusher/oauth2_proxy/pull/248) Fix issue with X-Auth-Request-Redirect header being ignored (@webnard)
1818- [#314](https://github.com/pusher/oauth2_proxy/pull/314) Add redirect capability to sign_out (@costelmoraru)
1919- [#265](https://github.com/pusher/oauth2_proxy/pull/265) Add upstream with static response (@cgroschupp)
20+- [#296](https://github.com/pusher/oauth2_proxy/pull/296) Allow to override provider's name for sign-in page (@ffdybuster)
2021
2122# v4.0.0
2223
docs/2_auth.md+1
@@ -156,6 +156,7 @@ OpenID Connect is a spec for OAUTH 2.0 + identity that is implemented by many ma
1561563. Login with the fixture use in the dex guide and run the oauth2_proxy with the following args:
157157
158158 -provider oidc
159+ -provider-display-name "My OIDC Provider"
159160 -client-id oauth2_proxy
160161 -client-secret proxy
161162 -redirect-url http://127.0.0.1:4180/oauth2/callback
docs/configuration/configuration.md+1
@@ -76,6 +76,7 @@ An example [oauth2_proxy.cfg]({{ site.gitweb }}/contrib/oauth2_proxy.cfg.example
7676| `-pass-user-headers` | bool | pass X-Forwarded-User and X-Forwarded-Email information to upstream | true |
7777| `-profile-url` | string | Profile access endpoint | |
7878| `-provider` | string | OAuth provider | google |
79+| `-provider-display-name` | string | Override the provider's name with the given string; used for the sign-in page | (depends on provider) |
7980| `-ping-path` | string | the ping endpoint that can be used for basic health checks | `"/ping"` |
8081| `-proxy-prefix` | string | the url root path that this proxy should be nested under (e.g. /`<oauth2>/sign_in`) | `"/oauth2"` |
8182| `-proxy-websockets` | bool | enables WebSocket proxying | true |
main.go+1
@@ -114,6 +114,7 @@ func main() {
114114 flagSet.String("auth-logging-format", logger.DefaultAuthLoggingFormat, "Template for authentication log lines")
115115
116116 flagSet.String("provider", "google", "OAuth provider")
117+ flagSet.String("provider-display-name", "", "Provider display name")
117118 flagSet.String("oidc-issuer-url", "", "OpenID Connect issuer URL (ie: https://accounts.google.com)")
118119 flagSet.Bool("insecure-oidc-allow-unverified-email", false, "Don't fail if an email address in an id_token is not verified")
119120 flagSet.Bool("skip-oidc-discovery", false, "Skip OIDC discovery and use manually supplied Endpoints")
oauthproxy.go+52−47
@@ -79,31 +79,32 @@ type OAuthProxy struct {
7979 AuthOnlyPath string
8080 UserInfoPath string
8181
82− redirectURL *url.URL // the url to receive requests at
83− whitelistDomains []string
84− provider providers.Provider
85− sessionStore sessionsapi.SessionStore
86− ProxyPrefix string
87− SignInMessage string
88− HtpasswdFile *HtpasswdFile
89− DisplayHtpasswdForm bool
90− serveMux http.Handler
91− SetXAuthRequest bool
92− PassBasicAuth bool
93− SkipProviderButton bool
94− PassUserHeaders bool
95− BasicAuthPassword string
96− PassAccessToken bool
97− SetAuthorization bool
98− PassAuthorization bool
99− skipAuthRegex []string
100− skipAuthPreflight bool
101− skipJwtBearerTokens bool
102− jwtBearerVerifiers []*oidc.IDTokenVerifier
103− compiledRegex []*regexp.Regexp
104− templates *template.Template
105− Banner string
106− Footer string
82+ redirectURL *url.URL // the url to receive requests at
83+ whitelistDomains []string
84+ provider providers.Provider
85+ providerNameOverride string
86+ sessionStore sessionsapi.SessionStore
87+ ProxyPrefix string
88+ SignInMessage string
89+ HtpasswdFile *HtpasswdFile
90+ DisplayHtpasswdForm bool
91+ serveMux http.Handler
92+ SetXAuthRequest bool
93+ PassBasicAuth bool
94+ SkipProviderButton bool
95+ PassUserHeaders bool
96+ BasicAuthPassword string
97+ PassAccessToken bool
98+ SetAuthorization bool
99+ PassAuthorization bool
100+ skipAuthRegex []string
101+ skipAuthPreflight bool
102+ skipJwtBearerTokens bool
103+ jwtBearerVerifiers []*oidc.IDTokenVerifier
104+ compiledRegex []*regexp.Regexp
105+ templates *template.Template
106+ Banner string
107+ Footer string
107108}
108109
109110// UpstreamProxy represents an upstream server to proxy to
@@ -282,28 +283,29 @@ func NewOAuthProxy(opts *Options, validator func(string) bool) *OAuthProxy {
282283 AuthOnlyPath: fmt.Sprintf("%s/auth", opts.ProxyPrefix),
283284 UserInfoPath: fmt.Sprintf("%s/userinfo", opts.ProxyPrefix),
284285
285− ProxyPrefix: opts.ProxyPrefix,
286− provider: opts.provider,
287− sessionStore: opts.sessionStore,
288− serveMux: serveMux,
289− redirectURL: redirectURL,
290− whitelistDomains: opts.WhitelistDomains,
291− skipAuthRegex: opts.SkipAuthRegex,
292− skipAuthPreflight: opts.SkipAuthPreflight,
293− skipJwtBearerTokens: opts.SkipJwtBearerTokens,
294− jwtBearerVerifiers: opts.jwtBearerVerifiers,
295− compiledRegex: opts.CompiledRegex,
296− SetXAuthRequest: opts.SetXAuthRequest,
297− PassBasicAuth: opts.PassBasicAuth,
298− PassUserHeaders: opts.PassUserHeaders,
299− BasicAuthPassword: opts.BasicAuthPassword,
300− PassAccessToken: opts.PassAccessToken,
301− SetAuthorization: opts.SetAuthorization,
302− PassAuthorization: opts.PassAuthorization,
303− SkipProviderButton: opts.SkipProviderButton,
304− templates: loadTemplates(opts.CustomTemplatesDir),
305− Banner: opts.Banner,
306− Footer: opts.Footer,
286+ ProxyPrefix: opts.ProxyPrefix,
287+ provider: opts.provider,
288+ providerNameOverride: opts.ProviderName,
289+ sessionStore: opts.sessionStore,
290+ serveMux: serveMux,
291+ redirectURL: redirectURL,
292+ whitelistDomains: opts.WhitelistDomains,
293+ skipAuthRegex: opts.SkipAuthRegex,
294+ skipAuthPreflight: opts.SkipAuthPreflight,
295+ skipJwtBearerTokens: opts.SkipJwtBearerTokens,
296+ jwtBearerVerifiers: opts.jwtBearerVerifiers,
297+ compiledRegex: opts.CompiledRegex,
298+ SetXAuthRequest: opts.SetXAuthRequest,
299+ PassBasicAuth: opts.PassBasicAuth,
300+ PassUserHeaders: opts.PassUserHeaders,
301+ BasicAuthPassword: opts.BasicAuthPassword,
302+ PassAccessToken: opts.PassAccessToken,
303+ SetAuthorization: opts.SetAuthorization,
304+ PassAuthorization: opts.PassAuthorization,
305+ SkipProviderButton: opts.SkipProviderButton,
306+ templates: loadTemplates(opts.CustomTemplatesDir),
307+ Banner: opts.Banner,
308+ Footer: opts.Footer,
307309 }
308310}
309311
@@ -465,6 +467,9 @@ func (p *OAuthProxy) SignInPage(rw http.ResponseWriter, req *http.Request, code
465467 ProxyPrefix: p.ProxyPrefix,
466468 Footer: template.HTML(p.Footer),
467469 }
470+ if p.providerNameOverride != "" {
471+ t.ProviderName = p.providerNameOverride
472+ }
468473 p.templates.ExecuteTemplate(rw, "sign_in.html", t)
469474}
470475
options.go+1
@@ -87,6 +87,7 @@ type Options struct {
8787 // These options allow for other providers besides Google, with
8888 // potential overrides.
8989 Provider string `flag:"provider" cfg:"provider" env:"OAUTH2_PROXY_PROVIDER"`
90+ ProviderName string `flag:"provider-display-name" cfg:"provider_display_name" env:"OAUTH2_PROXY_PROVIDER_DISPLAY_NAME"`
9091 OIDCIssuerURL string `flag:"oidc-issuer-url" cfg:"oidc_issuer_url" env:"OAUTH2_PROXY_OIDC_ISSUER_URL"`
9192 InsecureOIDCAllowUnverifiedEmail bool `flag:"insecure-oidc-allow-unverified-email" cfg:"insecure_oidc_allow_unverified_email" env:"OAUTH2_PROXY_INSECURE_OIDC_ALLOW_UNVERIFIED_EMAIL"`
9293 SkipOIDCDiscovery bool `flag:"skip-oidc-discovery" cfg:"skip_oidc_discovery" env:"OAUTH2_PROXY_SKIP_OIDC_DISCOVERY"`