vault: Adding ClientToken

This commit is contained in:
Armon Dadgar
2015-03-24 11:09:25 -07:00
parent 3ccd20cb58
commit db2e1388fc
2 changed files with 9 additions and 1 deletions

View File

@@ -26,6 +26,11 @@ type Request struct {
// Secret will be non-nil only for Revoke and Renew operations
// to represent the secret that was returned prior.
Secret *Secret
// ClientToken is provided to the core so that the identity
// can be verified and ACLs applied. This value is not passed
// through to the logical backends.
ClientToken string
}
// Get returns a data field and guards for nil Data

View File

@@ -109,15 +109,18 @@ func (r *Router) Route(req *logical.Request) (*logical.Response, error) {
}
me := raw.(*mountEntry)
// Adjust the path, attach the barrier view
// Adjust the path, attach the barrier view, clear the token
original := req.Path
clientToken := req.ClientToken
req.Path = strings.TrimPrefix(req.Path, mount)
req.Storage = me.view
req.ClientToken = ""
// Reset the request before returning
defer func() {
req.Path = original
req.Storage = nil
req.ClientToken = clientToken
}()
// Invoke the backend