git.iko.soy/typeable/oauth2-proxy
on master help sign in
Setup provider.ErrNotImplemented sentinel error
commit0bd8eb31910bb09a765eadae84bb103b744bda77 authorNick Meves <nick.meves@greenhouse.io> dateSat 26 Sep 2020, 14:06 (6 years ago) parentadd45c3
2 files changed+12−6
oauthproxy.go+2−2 providers/provider_default.go+10−4
oauthproxy.go+2−2
@@ -364,13 +364,13 @@ func (p *OAuthProxy) enrichSession(ctx context.Context, s *sessionsapi.SessionSt
364364 var err error
365365 if s.Email == "" {
366366 s.Email, err = p.provider.GetEmailAddress(ctx, s)
367− if err != nil && err.Error() != "not implemented" {
367+ if err != nil && !errors.Is(err, providers.ErrNotImplemented) {
368368 return err
369369 }
370370 }
371371 if s.User == "" {
372372 s.User, err = p.provider.GetUserName(ctx, s)
373− if err != nil && err.Error() != "not implemented" {
373+ if err != nil && !errors.Is(err, providers.ErrNotImplemented) {
374374 return err
375375 }
376376 }
providers/provider_default.go+10−4
@@ -14,7 +14,13 @@ import (
1414 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/requests"
1515)
1616
17−var _ Provider = (*ProviderData)(nil)
17+var (
18+ // ErrNotImplemented is returned when a provider did not override a default
19+ // implementation method that doesn't have sensible defaults
20+ ErrNotImplemented = errors.New("not implemented")
21+
22+ _ Provider = (*ProviderData)(nil)
23+)
1824
1925// Redeem provides a default implementation of the OAuth2 token redemption process
2026func (p *ProviderData) Redeem(ctx context.Context, redirectURL, code string) (s *sessions.SessionState, err error) {
@@ -82,12 +88,12 @@ func (p *ProviderData) GetLoginURL(redirectURI, state string) string {
8288
8389// GetEmailAddress returns the Account email address
8490func (p *ProviderData) GetEmailAddress(ctx context.Context, s *sessions.SessionState) (string, error) {
85− return "", errors.New("not implemented")
91+ return "", ErrNotImplemented
8692}
8793
8894// GetUserName returns the Account username
8995func (p *ProviderData) GetUserName(ctx context.Context, s *sessions.SessionState) (string, error) {
90− return "", errors.New("not implemented")
96+ return "", ErrNotImplemented
9197}
9298
9399// ValidateGroup validates that the provided email exists in the configured provider
@@ -110,5 +116,5 @@ func (p *ProviderData) RefreshSessionIfNeeded(ctx context.Context, s *sessions.S
110116// CreateSessionStateFromBearerToken should be implemented to allow providers
111117// to convert ID tokens into sessions
112118func (p *ProviderData) CreateSessionStateFromBearerToken(ctx context.Context, rawIDToken string, idToken *oidc.IDToken) (*sessions.SessionState, error) {
113− return nil, errors.New("not implemented")
119+ return nil, ErrNotImplemented
114120}