http: mask user error away from unseal since its not actionable

This commit is contained in:
Mitchell Hashimoto 2015-03-12 11:26:59 -07:00
parent aa0ca02b8c
commit 319500748a
2 changed files with 8 additions and 6 deletions

View File

@ -5,6 +5,7 @@ import (
"errors"
"net/http"
"github.com/hashicorp/errwrap"
"github.com/hashicorp/vault/vault"
)
@ -55,8 +56,12 @@ func handleSysUnseal(core *vault.Core) http.Handler {
// Attempt the unseal
if _, err := core.Unseal(key); err != nil {
respondError(w, http.StatusInternalServerError, err)
return
// Ignore ErrInvalidKey because its a user error that we
// mask away. We just show them the seal status.
if !errwrap.ContainsType(err, new(vault.ErrInvalidKey)) {
respondError(w, http.StatusInternalServerError, err)
return
}
}
// Return the seal status

View File

@ -97,16 +97,13 @@ func TestSysUnseal(t *testing.T) {
}
func TestSysUnseal_badKey(t *testing.T) {
// TODO: wait on Armon to fix error message from core
t.Skip()
core := testCore(t)
testCoreInit(t, core)
ln, addr := testServer(t, core)
defer ln.Close()
resp := testHttpPut(t, addr+"/v1/sys/unseal", map[string]interface{}{
"key": "foo",
"key": "0123",
})
var actual map[string]interface{}