func basicAuthParse(c *Controller) ([]basicauth.Rule, error) { var rules []basicauth.Rule for c.Next() { var rule basicauth.Rule args := c.RemainingArgs() switch len(args) { case 2: rule.Username = args[0] rule.Password = args[1] for c.NextBlock() { rule.Resources = append(rule.Resources, c.Val()) if c.NextArg() { return rules, c.Errf("Expecting only one resource per line (extra '%s')", c.Val()) } } case 3: rule.Resources = append(rule.Resources, args[0]) rule.Username = args[1] rule.Password = args[2] default: return rules, c.ArgErr() } rules = append(rules, rule) } return rules, nil }
func basicAuthParse(c *Controller) ([]basicauth.Rule, error) { var rules []basicauth.Rule var err error for c.Next() { var rule basicauth.Rule args := c.RemainingArgs() switch len(args) { case 2: rule.Username = args[0] if rule.Password, err = passwordMatcher(rule.Username, args[1], c.Root); err != nil { return rules, c.Errf("Get password matcher from %s: %v", c.Val(), err) } for c.NextBlock() { rule.Resources = append(rule.Resources, c.Val()) if c.NextArg() { return rules, c.Errf("Expecting only one resource per line (extra '%s')", c.Val()) } } case 3: rule.Resources = append(rule.Resources, args[0]) rule.Username = args[1] if rule.Password, err = passwordMatcher(rule.Username, args[2], c.Root); err != nil { return rules, c.Errf("Get password matcher from %s: %v", c.Val(), err) } default: return rules, c.ArgErr() } rules = append(rules, rule) } return rules, nil }