Skip to content

Commit 74050fd

Browse files
bearkijeevatkm
andauthored
fix: Improve Digest WWW-Authenticate response header parsing compatibility (#735)
Co-authored-by: Jeevanandam M <[email protected]>
1 parent 577fed8 commit 74050fd

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

digest.go

+6-3
Original file line numberDiff line numberDiff line change
@@ -133,14 +133,17 @@ func parseChallenge(input string) (*challenge, error) {
133133
return nil, ErrDigestBadChallenge
134134
}
135135
s = strings.Trim(s[7:], ws)
136-
sl := strings.Split(s, ", ")
136+
sl := strings.Split(s, ",")
137137
c := &challenge{}
138138
var r []string
139139
for i := range sl {
140+
sl[i] = strings.TrimSpace(sl[i])
140141
r = strings.SplitN(sl[i], "=", 2)
141142
if len(r) != 2 {
142143
return nil, ErrDigestBadChallenge
143144
}
145+
r[0] = strings.TrimSpace(r[0])
146+
r[1] = strings.TrimSpace(r[1])
144147
switch r[0] {
145148
case "realm":
146149
c.realm = strings.Trim(r[1], qs)
@@ -151,9 +154,9 @@ func parseChallenge(input string) (*challenge, error) {
151154
case "opaque":
152155
c.opaque = strings.Trim(r[1], qs)
153156
case "stale":
154-
c.stale = r[1]
157+
c.stale = strings.Trim(r[1], qs)
155158
case "algorithm":
156-
c.algorithm = r[1]
159+
c.algorithm = strings.Trim(r[1], qs)
157160
case "qop":
158161
c.qop = strings.Trim(r[1], qs)
159162
case "charset":

0 commit comments

Comments
 (0)