remove pointers confusion from providers

This commit is contained in:
Umputun
2018-05-24 18:55:25 -05:00
parent e1f19c22d9
commit 092625839f
3 changed files with 14 additions and 14 deletions
+2 -2
View File
@@ -54,7 +54,7 @@ func (u userData) value(key string) string {
}
// newProvider makes auth for given provider
func initProvider(p Params, provider *Provider) Provider {
func initProvider(p Params, provider Provider) Provider {
log.Printf("[INFO] create %s auth, id=%s, redir: %s", provider.Name, provider.Cid, provider.RedirectURL)
provider.Params = p
conf := oauth2.Config{
@@ -66,7 +66,7 @@ func initProvider(p Params, provider *Provider) Provider {
}
provider.conf = &conf
return *provider
return provider
}
// Routes returns auth routes for given provider
+8 -8
View File
@@ -30,7 +30,7 @@ func TestLogin(t *testing.T) {
require.Nil(t, err)
client := &http.Client{Jar: jar, Timeout: 5 * time.Second}
resp, err := client.Get("http://localhost:8981/login")
assert.Nil(t, err)
require.Nil(t, err)
assert.Equal(t, 200, resp.StatusCode)
body, err := ioutil.ReadAll(resp.Body)
assert.Nil(t, err)
@@ -92,7 +92,7 @@ func TestLogout(t *testing.T) {
func TestInitProvider(t *testing.T) {
params := Params{RemarkURL: "url", SecretKey: "123456", Cid: "cid", Csecret: "csecret"}
provider := Provider{Name: "test", RedirectURL: "redir"}
res := initProvider(params, &provider)
res := initProvider(params, provider)
assert.Equal(t, "cid", res.conf.ClientID)
assert.Equal(t, "csecret", res.conf.ClientSecret)
assert.Equal(t, "redir", res.RedirectURL)
@@ -100,9 +100,9 @@ func TestInitProvider(t *testing.T) {
assert.Equal(t, "test", res.Name)
}
func mockProvider(t *testing.T, loginPort, authPort int) (provider *Provider, ts *http.Server, oauth *http.Server) {
func mockProvider(t *testing.T, loginPort, authPort int) (*Provider, *http.Server, *http.Server) {
provider = &Provider{
provider := Provider{
Name: "mock",
Endpoint: oauth2.Endpoint{
AuthURL: fmt.Sprintf("http://localhost:%d/login/oauth/authorize", authPort),
@@ -122,11 +122,11 @@ func mockProvider(t *testing.T, loginPort, authPort int) (provider *Provider, ts
}
params := Params{RemarkURL: "url", SecretKey: "123456", Cid: "cid", Csecret: "csecret",
JwtService: NewJWT("12345", false, time.Hour), Admins: []string{""}}
initProvider(params, provider)
provider = initProvider(params, provider)
ts = &http.Server{Addr: fmt.Sprintf(":%d", loginPort), Handler: provider.Routes()}
ts := &http.Server{Addr: fmt.Sprintf(":%d", loginPort), Handler: provider.Routes()}
oauth = &http.Server{
oauth := &http.Server{
Addr: fmt.Sprintf(":%d", authPort),
Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
log.Printf("[MOCK OAUTH] request %s %s %+v", r.Method, r.URL, r.Header)
@@ -166,5 +166,5 @@ func mockProvider(t *testing.T, loginPort, authPort int) (provider *Provider, ts
go ts.ListenAndServe()
time.Sleep(time.Millisecond * 100) // let the start
return provider, ts, oauth
return &provider, ts, oauth
}
+4 -4
View File
@@ -14,7 +14,7 @@ import (
// NewGoogle makes google oauth2 provider
func NewGoogle(p Params) Provider {
return initProvider(p, &Provider{
return initProvider(p, Provider{
Name: "google",
Endpoint: google.Endpoint,
RedirectURL: p.RemarkURL + "/auth/google/callback",
@@ -37,7 +37,7 @@ func NewGoogle(p Params) Provider {
// NewGithub makes github oauth2 provider
func NewGithub(p Params) Provider {
return initProvider(p, &Provider{
return initProvider(p, Provider{
Name: "github",
Endpoint: github.Endpoint,
RedirectURL: p.RemarkURL + "/auth/github/callback",
@@ -75,7 +75,7 @@ func NewFacebook(p Params) Provider {
} `json:"picture"`
}
return initProvider(p, &Provider{
return initProvider(p, Provider{
Name: "facebook",
Endpoint: facebook.Endpoint,
RedirectURL: p.RemarkURL + "/auth/facebook/callback",
@@ -101,7 +101,7 @@ func NewFacebook(p Params) Provider {
// NewDisqus makes disqus oauth2 provider. TODO: WIP - seems to need client_id param
func NewDisqus(p Params) Provider {
return initProvider(p, &Provider{
return initProvider(p, Provider{
Name: "disqus",
Endpoint: oauth2.Endpoint{
AuthURL: "https://disqus.com/api/oauth/2.0/authorize/",