From 46ce1bedd3be6df07d454d60622dcf3e7b81e1f3 Mon Sep 17 00:00:00 2001 From: Jeff Mitchell Date: Sat, 29 Jun 2019 16:36:21 -0400 Subject: [PATCH] When using tokenutil, return []string not nil for empty slices (#7019) This conveys type information instead of being a JSON null. --- builtin/credential/userpass/path_users.go | 2 +- sdk/helper/tokenutil/tokenutil.go | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/builtin/credential/userpass/path_users.go b/builtin/credential/userpass/path_users.go index 94f33fef9b..398a6ff25b 100644 --- a/builtin/credential/userpass/path_users.go +++ b/builtin/credential/userpass/path_users.go @@ -172,7 +172,7 @@ func (b *backend) pathUserRead(ctx context.Context, req *logical.Request, d *fra data["max_ttl"] = int64(user.MaxTTL.Seconds()) } if len(user.Policies) > 0 { - data["policies"] = user.Policies + data["policies"] = data["token_policies"] } if len(user.BoundCIDRs) > 0 { data["bound_cidrs"] = user.BoundCIDRs diff --git a/sdk/helper/tokenutil/tokenutil.go b/sdk/helper/tokenutil/tokenutil.go index ac0dcce15e..fd65d54a46 100644 --- a/sdk/helper/tokenutil/tokenutil.go +++ b/sdk/helper/tokenutil/tokenutil.go @@ -212,6 +212,14 @@ func (t *TokenParams) PopulateTokenData(m map[string]interface{}) { m["token_type"] = t.TokenType.String() m["token_ttl"] = int64(t.TokenTTL.Seconds()) m["token_num_uses"] = t.TokenNumUses + + if len(t.TokenPolicies) == 0 { + m["token_policies"] = []string{} + } + + if len(t.TokenBoundCIDRs) == 0 { + m["token_bound_cidrs"] = []string{} + } } // PopulateTokenAuth populates Auth with parameters