@@ -13,7 +13,6 @@ import (
1313 "strings"
1414 "time"
1515
16− "github.com/coreos/go-oidc"
1716 "github.com/justinas/alice"
1817 ipapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/ip"
1918 middlewareapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/middleware"
@@ -78,36 +77,34 @@ type OAuthProxy struct {
7877 AuthOnlyPath string
7978 UserInfoPath string
8079
81− allowedRoutes []allowedRoute
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− basicAuthValidator basic.Validator
90− displayHtpasswdForm bool
91− serveMux http.Handler
92− SetXAuthRequest bool
93− PassBasicAuth bool
94− SetBasicAuth bool
95− SkipProviderButton bool
96− PassUserHeaders bool
97− BasicAuthPassword string
98− PassAccessToken bool
99− SetAuthorization bool
100− PassAuthorization bool
101− PreferEmailToUser bool
102− skipAuthPreflight bool
103− skipJwtBearerTokens bool
104− mainJwtBearerVerifier *oidc.IDTokenVerifier
105− extraJwtBearerVerifiers []*oidc.IDTokenVerifier
106− templates *template.Template
107− realClientIPParser ipapi.RealClientIPParser
108− trustedIPs *ip.NetSet
109− Banner string
110− Footer string
80+ allowedRoutes []allowedRoute
81+ redirectURL *url.URL // the url to receive requests at
82+ whitelistDomains []string
83+ provider providers.Provider
84+ providerNameOverride string
85+ sessionStore sessionsapi.SessionStore
86+ ProxyPrefix string
87+ SignInMessage string
88+ basicAuthValidator basic.Validator
89+ displayHtpasswdForm bool
90+ serveMux http.Handler
91+ SetXAuthRequest bool
92+ PassBasicAuth bool
93+ SetBasicAuth bool
94+ SkipProviderButton bool
95+ PassUserHeaders bool
96+ BasicAuthPassword string
97+ PassAccessToken bool
98+ SetAuthorization bool
99+ PassAuthorization bool
100+ PreferEmailToUser bool
101+ skipAuthPreflight bool
102+ skipJwtBearerTokens bool
103+ templates *template.Template
104+ realClientIPParser ipapi.RealClientIPParser
105+ trustedIPs *ip.NetSet
106+ Banner string
107+ Footer string
111108
112109 sessionChain alice.Chain
113110 headersChain alice.Chain
@@ -202,25 +199,23 @@ func NewOAuthProxy(opts *options.Options, validator func(string) bool) (*OAuthPr
202199 AuthOnlyPath: fmt.Sprintf("%s/auth", opts.ProxyPrefix),
203200 UserInfoPath: fmt.Sprintf("%s/userinfo", opts.ProxyPrefix),
204201
205− ProxyPrefix: opts.ProxyPrefix,
206− provider: opts.GetProvider(),
207− providerNameOverride: opts.ProviderName,
208− sessionStore: sessionStore,
209− serveMux: upstreamProxy,
210− redirectURL: redirectURL,
211− allowedRoutes: allowedRoutes,
212− whitelistDomains: opts.WhitelistDomains,
213− skipAuthPreflight: opts.SkipAuthPreflight,
214− skipJwtBearerTokens: opts.SkipJwtBearerTokens,
215− mainJwtBearerVerifier: opts.GetOIDCVerifier(),
216− extraJwtBearerVerifiers: opts.GetJWTBearerVerifiers(),
217− realClientIPParser: opts.GetRealClientIPParser(),
218− SkipProviderButton: opts.SkipProviderButton,
219− templates: templates,
220− trustedIPs: trustedIPs,
221− Banner: opts.Banner,
222− Footer: opts.Footer,
223− SignInMessage: buildSignInMessage(opts),
202+ ProxyPrefix: opts.ProxyPrefix,
203+ provider: opts.GetProvider(),
204+ providerNameOverride: opts.ProviderName,
205+ sessionStore: sessionStore,
206+ serveMux: upstreamProxy,
207+ redirectURL: redirectURL,
208+ allowedRoutes: allowedRoutes,
209+ whitelistDomains: opts.WhitelistDomains,
210+ skipAuthPreflight: opts.SkipAuthPreflight,
211+ skipJwtBearerTokens: opts.SkipJwtBearerTokens,
212+ realClientIPParser: opts.GetRealClientIPParser(),
213+ SkipProviderButton: opts.SkipProviderButton,
214+ templates: templates,
215+ trustedIPs: trustedIPs,
216+ Banner: opts.Banner,
217+ Footer: opts.Footer,
218+ SignInMessage: buildSignInMessage(opts),
224219
225220 basicAuthValidator: basicAuthValidator,
226221 displayHtpasswdForm: basicAuthValidator != nil && opts.DisplayHtpasswdForm,
@@ -266,22 +261,13 @@ func buildSessionChain(opts *options.Options, sessionStore sessionsapi.SessionSt
266261 chain := alice.New()
267262
268263 if opts.SkipJwtBearerTokens {
269− sessionLoaders := []middlewareapi.TokenToSessionLoader{}
270− if opts.GetOIDCVerifier() != nil {
271− sessionLoaders = append(sessionLoaders, middlewareapi.TokenToSessionLoader{
272− Verifier: func(ctx context.Context, token string) (interface{}, error) {
273− return opts.GetOIDCVerifier().Verify(ctx, token)
274− },
275− TokenToSession: opts.GetProvider().CreateSessionFromToken,
276− })
264+ sessionLoaders := []middlewareapi.TokenToSessionFunc{
265+ opts.GetProvider().CreateSessionFromToken,
277266 }
278267
279268 for _, verifier := range opts.GetJWTBearerVerifiers() {
280− sessionLoaders = append(sessionLoaders, middlewareapi.TokenToSessionLoader{
281− Verifier: func(ctx context.Context, token string) (interface{}, error) {
282− return verifier.Verify(ctx, token)
283− },
284− })
269+ sessionLoaders = append(sessionLoaders,
270+ middlewareapi.CreateTokenToSessionFunc(verifier.Verify))
285271 }
286272
287273 chain = chain.Append(middleware.NewJwtSessionLoader(sessionLoaders))