(paramstr string, logger *clog.CondLogger)
| 17 | } |
| 18 | |
| 19 | func NewAuth(paramstr string, logger *clog.CondLogger) (Auth, error) { |
| 20 | url, err := url.Parse(paramstr) |
| 21 | if err != nil { |
| 22 | return nil, err |
| 23 | } |
| 24 | |
| 25 | switch strings.ToLower(url.Scheme) { |
| 26 | case "static": |
| 27 | return NewStaticAuth(url, logger) |
| 28 | case "basicfile": |
| 29 | return NewBasicFileAuth(url, logger) |
| 30 | case "hmac": |
| 31 | return NewHMACAuth(url, logger) |
| 32 | case "cert": |
| 33 | return NewCertAuth(url, logger) |
| 34 | case "redis": |
| 35 | return NewRedisAuth(url, false, logger) |
| 36 | case "redis-cluster": |
| 37 | return NewRedisAuth(url, true, logger) |
| 38 | case "none": |
| 39 | return NoAuth{}, nil |
| 40 | case "reject-http", "reject-https": |
| 41 | return newRejectAuthFromURL(url, logger) |
| 42 | case "reject-static": |
| 43 | return newRejectAuthFromURL(url, logger) |
| 44 | case "tlscookie": |
| 45 | return NewTLSCookieAuth(url, logger) |
| 46 | default: |
| 47 | return nil, errors.New("Unknown auth scheme") |
| 48 | } |
| 49 | } |
| 50 | |
| 51 | // NewRejectAuth constructs an auth provider which always responds and rejects. |
| 52 | func NewRejectAuth(paramstr string, logger *clog.CondLogger) (Auth, error) { |
no test coverage detected