support stale=FALSE in authentication header

This commit is contained in:
aler9
2020-01-26 18:25:31 +01:00
parent 13da0e6723
commit 67b9542061
2 changed files with 18 additions and 4 deletions

View File

@@ -20,19 +20,21 @@ func ReadHeaderAuth(in string) (*HeaderAuth, error) {
i := strings.IndexByte(in, ' ')
if i < 0 {
return nil, fmt.Errorf("parse error")
return nil, fmt.Errorf("unable to find prefix (%s)", in)
}
a.Prefix, in = in[:i], in[i+1:]
r := regexp.MustCompile("^([a-z]+)=\"(.+?)\"(, )?")
r := regexp.MustCompile("^([a-z]+)=(\"(.+?)\"|([a-zA-Z0-9]+))(, )?")
for len(in) > 0 {
m := r.FindStringSubmatch(in)
if m == nil {
return nil, fmt.Errorf("parse error")
return nil, fmt.Errorf("unable to parse key-value (%s)", in)
}
in = in[len(m[0]):]
m[2] = strings.TrimPrefix(m[2], "\"")
m[2] = strings.TrimSuffix(m[2], "\"")
a.Values[m[1]] = m[2]
}