in pkg/dataplane/internal/challenge/parse.go [55:81]
func Parse(headers http.Header) ([]Challenge, error) {
var challenges []Challenge
var errors []error
parsingErrors := &errorSink{}
for _, value := range headers.Values("WWW-Authenticate") {
p := NewChallengeParser(
antlr.NewCommonTokenStream(
NewChallengeLexer(
antlr.NewInputStream(value),
),
0,
),
)
p.AddErrorListener(parsingErrors)
listener := &Listener{}
antlr.ParseTreeWalkerDefault.Walk(listener, p.Header())
challenges = append(challenges, listener.challenges...)
errors = append(errors, listener.errors...)
}
if parsingErrors.errors != nil {
return nil, collapseErrors(parsingErrors.errors)
}
if errors != nil {
return nil, collapseErrors(errors)
}
return challenges, nil
}