Skip to content
This repository was archived by the owner on Oct 12, 2023. It is now read-only.

Commit 9f3411c

Browse files
Update NMI resource id query key (#1401)
Co-authored-by: Feng Zhang <fenzhan@microsoft.com>
1 parent 7c3db6b commit 9f3411c

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

pkg/nmi/server/server.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -549,6 +549,9 @@ func parseTokenRequest(r *http.Request) (request TokenRequest) {
549549
// These are mutually exclusive values (client_id, msi_resource_id)
550550
request.ClientID = vals.Get("client_id")
551551
request.ResourceID = vals.Get("msi_res_id")
552+
if len(request.ResourceID) == 0 {
553+
request.ResourceID = vals.Get("mi_res_id")
554+
}
552555

553556
request.Resource = vals.Get("resource")
554557
}

pkg/nmi/server/server_test.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,20 @@ func TestParseTokenRequest(t *testing.T) {
115115
}
116116
})
117117

118+
t.Run("query present with latest resource id", func(t *testing.T) {
119+
const resource = "https://vault.azure.net"
120+
const resourceID = "/subscriptions/9f2be85c-f8ae-4569-9353-38e5e8b459ef/resourcegroups/test/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test"
121+
122+
var r http.Request
123+
r.URL, _ = url.Parse(fmt.Sprintf("%s?mi_res_id=%s&resource=%s", endpoint, resourceID, resource))
124+
125+
result := parseTokenRequest(&r)
126+
127+
if result.ResourceID != resourceID {
128+
t.Errorf("invalid ResourceID - expected: %q, actual: %q", resourceID, result.ResourceID)
129+
}
130+
})
131+
118132
t.Run("bare endpoint", func(t *testing.T) {
119133
var r http.Request
120134
r.URL, _ = url.Parse(endpoint)

0 commit comments

Comments
 (0)