git.iko.soy/typeable/oauth2-proxy
on master help sign in
Merge pull request #502 from talam/update_options_parsing

options: update options parsing for better handling of incorrect values

commit6ddbb2c5728465986a20e11e5caddf23d50d57c1 authorHeather Hendy <hlhendy@users.noreply.github.com> dateMon 20 Nov 2017, 11:00 (9 years ago) parenta7c5d9ce955d2b
2 files changed+23−2
options.go+2−2 options_test.go+21
options.go+2−2
@@ -180,8 +180,8 @@ func (o *Options) Validate() error {
180180 for _, u := range o.SkipAuthRegex {
181181 CompiledRegex, err := regexp.Compile(u)
182182 if err != nil {
183− msgs = append(msgs, fmt.Sprintf(
184− "error compiling regex=%q %s", u, err))
183+ msgs = append(msgs, fmt.Sprintf("error compiling regex=%q %s", u, err))
184+ continue
185185 }
186186 o.CompiledRegex = append(o.CompiledRegex, CompiledRegex)
187187 }
options_test.go+21
@@ -95,6 +95,18 @@ func TestProxyURLs(t *testing.T) {
9595 assert.Equal(t, expected, o.proxyURLs)
9696}
9797
98+func TestProxyURLsError(t *testing.T) {
99+ o := testOptions()
100+ o.Upstreams = append(o.Upstreams, "127.0.0.1:8081")
101+ err := o.Validate()
102+ assert.NotEqual(t, nil, err)
103+
104+ expected := errorMsg([]string{
105+ "error parsing upstream: parse 127.0.0.1:8081: " +
106+ "first path segment in URL cannot contain colon"})
107+ assert.Equal(t, expected, err.Error())
108+}
109+
98110func TestCompiledRegex(t *testing.T) {
99111 o := testOptions()
100112 regexps := []string{"/foo/.*", "/ba[rz]/quux"}
@@ -119,6 +131,15 @@ func TestCompiledRegexError(t *testing.T) {
119131 "error compiling regex=\"barquux)\" error parsing regexp: " +
120132 "unexpected ): `barquux)`"})
121133 assert.Equal(t, expected, err.Error())
134+
135+ o.SkipAuthRegex = []string{"foobaz", "barquux)"}
136+ err = o.Validate()
137+ assert.NotEqual(t, nil, err)
138+
139+ expected = errorMsg([]string{
140+ "error compiling regex=\"barquux)\" error parsing regexp: " +
141+ "unexpected ): `barquux)`"})
142+ assert.Equal(t, expected, err.Error())
122143}
123144
124145func TestDefaultProviderApiSettings(t *testing.T) {