X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/a4acb3ae95b2fc7f4b5f1e174c910a54cc6681da..f4ca9ad94a6bb006d1f3c7ba207837f1736d1247:/services/keep-web/anonymous.go diff --git a/services/keep-web/anonymous.go b/services/keep-web/anonymous.go index db402411f9..15a98c2f36 100644 --- a/services/keep-web/anonymous.go +++ b/services/keep-web/anonymous.go @@ -3,22 +3,33 @@ package main import ( "flag" "fmt" + "os" + "strconv" ) var anonymousTokens tokenSet type tokenSet []string -func (ts *tokenSet) Set(t string) error { - *ts = append(*ts, t) - return nil +func (ts *tokenSet) Set(s string) error { + v, err := strconv.ParseBool(s) + if v && len(*ts) == 0 { + *ts = append(*ts, os.Getenv("ARVADOS_API_TOKEN")) + } else if !v { + *ts = (*ts)[:0] + } + return err } func (ts *tokenSet) String() string { - return fmt.Sprintf("%+v", (*ts)[:]) + return fmt.Sprintf("%v", len(*ts) > 0) +} + +func (ts *tokenSet) IsBoolFlag() bool { + return true } func init() { - flag.Var(&anonymousTokens, "anonymous-token", - "Try using the specified token when a client does not provide a valid token. If this flag is used multiple times, each token will be tried in turn until one works.") + flag.Var(&anonymousTokens, "allow-anonymous", + "Serve public data to anonymous clients. Try the token supplied in the ARVADOS_API_TOKEN environment variable when none of the tokens provided in an HTTP request succeed in reading the desired collection.") }