git.iko.soy/typeable/oauth2-proxy
on master help sign in
More robust handling for missing email
commit0692c3763f1b5023ca8c37c539d1b4ed23a4aa10 authorJehiah Czebotar <jehiah@gmail.com> dateFri 24 Jul 2015, 16:23 (11 years ago) parentc1bf1ad
4 files changed+7−7
options_test.go+2 providers/github.go+1−2 providers/linkedin.go−3 validator.go+4−2
options_test.go+2
@@ -15,6 +15,7 @@ func testOptions() *Options {
1515 o.CookieSecret = "foobar"
1616 o.ClientID = "bazquux"
1717 o.ClientSecret = "xyzzyplugh"
18+ o.EmailDomains = []string{"*"}
1819 return o
1920}
2021
@@ -27,6 +28,7 @@ func errorMsg(msgs []string) string {
2728
2829func TestNewOptions(t *testing.T) {
2930 o := NewOptions()
31+ o.EmailDomains = []string{"*"}
3032 err := o.Validate()
3133 assert.NotEqual(t, nil, err)
3234
providers/github.go+1−2
@@ -2,7 +2,6 @@ package providers
22
33import (
44 "encoding/json"
5− "errors"
65 "fmt"
76 "io/ioutil"
87 "log"
@@ -211,5 +210,5 @@ func (p *GitHubProvider) GetEmailAddress(s *SessionState) (string, error) {
211210 }
212211 }
213212
214− return "", errors.New("no email address found")
213+ return "", nil
215214}
providers/linkedin.go−3
@@ -3,7 +3,6 @@ package providers
33import (
44 "errors"
55 "fmt"
6− "log"
76 "net/http"
87 "net/url"
98
@@ -60,13 +59,11 @@ func (p *LinkedInProvider) GetEmailAddress(s *SessionState) (string, error) {
6059
6160 json, err := api.Request(req)
6261 if err != nil {
63− log.Printf("failed making request %s", err)
6462 return "", err
6563 }
6664
6765 email, err := json.String()
6866 if err != nil {
69− log.Printf("failed making request %s", err)
7067 return "", err
7168 }
7269 return email, nil
validator.go+4−2
@@ -71,9 +71,11 @@ func newValidatorImpl(domains []string, usersFile string,
7171 domains[i] = fmt.Sprintf("@%s", strings.ToLower(domain))
7272 }
7373
74− validator := func(email string) bool {
74+ validator := func(email string) (valid bool) {
75+ if email == "" {
76+ return
77+ }
7578 email = strings.ToLower(email)
76− valid := false
7779 for _, domain := range domains {
7880 valid = valid || strings.HasSuffix(email, domain)
7981 }