Skip to content

Commit

Permalink
Add -dev-no-store-token to vault server command (#7104)
Browse files Browse the repository at this point in the history
When starting a vault dev server the token helper is invoked to store
the dev root token.
This option gives the user the ability to not store the token.

Storing the token can be undesirable in certain circumstances
(e.g.  running local tests) as the user's existing vault token is
clobbered without warning.

Fixes #1861
  • Loading branch information
jsok authored and jefferai committed Jul 24, 2019
1 parent 725b354 commit fb8ce19
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 13 deletions.
36 changes: 23 additions & 13 deletions command/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,13 +87,13 @@ type ServerCommand struct {
reloadedCh chan (struct{}) // for tests

// new stuff
flagConfigs []string
flagLogLevel string
flagLogFormat string
flagDev bool
flagDevRootTokenID string
flagDevListenAddr string

flagConfigs []string
flagLogLevel string
flagLogFormat string
flagDev bool
flagDevRootTokenID string
flagDevListenAddr string
flagDevNoStoreToken bool
flagDevPluginDir string
flagDevPluginInit bool
flagDevHA bool
Expand Down Expand Up @@ -213,6 +213,14 @@ func (c *ServerCommand) Flags() *FlagSets {
EnvVar: "VAULT_DEV_LISTEN_ADDRESS",
Usage: "Address to bind to in \"dev\" mode.",
})
f.BoolVar(&BoolVar{
Name: "dev-no-store-token",
Target: &c.flagDevNoStoreToken,
Default: false,
Usage: "Do not persist the dev root token to the token helper " +
"(usually the local filesystem) for use in future requests. " +
"The token will only be displayed in the command output.",
})

// Internal-only flags to follow.
//
Expand Down Expand Up @@ -1515,12 +1523,14 @@ func (c *ServerCommand) enableDev(core *vault.Core, coreConfig *vault.CoreConfig
}

// Set the token
tokenHelper, err := c.TokenHelper()
if err != nil {
return nil, err
}
if err := tokenHelper.Store(init.RootToken); err != nil {
return nil, err
if !c.flagDevNoStoreToken {
tokenHelper, err := c.TokenHelper()
if err != nil {
return nil, err
}
if err := tokenHelper.Store(init.RootToken); err != nil {
return nil, err
}
}

kvVer := "2"
Expand Down
4 changes: 4 additions & 0 deletions website/source/docs/commands/server.html.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,4 +76,8 @@ flags](/docs/commands/index.html) included on all commands.
when running in "dev" mode. This can also be specified via the
`VAULT_DEV_ROOT_TOKEN_ID` environment variable.

- `-dev-no-store-token` `(string: "")` - Do not persist the dev root token to
the token helper (usually the local filesystem) for use in future requests.
The token will only be displayed in the command output.

- `-dev-plugin-dir` `(string: "")` - Directory from which plugins are allowed to be loaded. Only applies in "dev" mode, it will automatically register all the plugins in the provided directory.

0 comments on commit fb8ce19

Please sign in to comment.