git.iko.soy/typeable/oauth2-proxy
on master help sign in
Move actual implementation of default provider GetLoginURL into DefaultGetLoginURL
97e95fdAlexander Block
providers/provider_default.go+7−2
@@ -73,8 +73,7 @@ func (p *ProviderData) Redeem(ctx context.Context, redirectURL, code string) (s
73 return
73 return
74}
74}
75
75
76−// GetLoginURL with typical oauth parameters
77−func (p *ProviderData) GetLoginURL(redirectURI, state string) string {
76+func DefaultGetLoginURL(p *ProviderData, redirectURI, state string) (url.URL, url.Values) {
78 a := *p.LoginURL
77 a := *p.LoginURL
79 params, _ := url.ParseQuery(a.RawQuery)
78 params, _ := url.ParseQuery(a.RawQuery)
80 params.Set("redirect_uri", redirectURI)
79 params.Set("redirect_uri", redirectURI)
@@ -93,6 +92,12 @@ func (p *ProviderData) GetLoginURL(redirectURI, state string) string {
93 if p.ProtectedResource != nil && p.ProtectedResource.String() != "" {
92 if p.ProtectedResource != nil && p.ProtectedResource.String() != "" {
94 params.Add("resource", p.ProtectedResource.String())
93 params.Add("resource", p.ProtectedResource.String())
95 }
94 }
95+ return a, params
96+}
97+
98+// GetLoginURL with typical oauth parameters
99+func (p *ProviderData) GetLoginURL(redirectURI, state string) string {
100+ a, params := DefaultGetLoginURL(p, redirectURI, state)
96 a.RawQuery = params.Encode()
101 a.RawQuery = params.Encode()
97 return a.String()
102 return a.String()
98}
103}