Skip to content

Commit 429f420

Browse files
committed
Simplify Impersonate
* Introduce local variable impersonationToken * Avoid NullReferenceException if UserAccess is null
1 parent f3d4b64 commit 429f420

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/corelib/Providers/Rackspace/CloudIdentityProvider.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -732,16 +732,18 @@ private UserAccess Impersonate(RackspaceImpersonationIdentity identity, bool for
732732
var request = BuildImpersonationRequestJson(identity.UserToImpersonate.Username, 600);
733733
var parentIdentity = new RackspaceCloudIdentity(identity);
734734
var response = ExecuteRESTRequest<UserImpersonationResponse>(parentIdentity, new Uri(_urlBase, urlPath), HttpMethod.POST, request);
735-
736-
if (response == null || response.Data == null || response.Data.UserAccess.Token == null)
735+
if (response == null || response.Data == null || response.Data.UserAccess == null)
737736
return null;
738737

739-
var userAccess = ValidateToken(response.Data.UserAccess.Token.Id, identity: parentIdentity);
738+
IdentityToken impersonationToken = response.Data.UserAccess.Token;
739+
if (impersonationToken == null)
740+
return null;
740741

742+
var userAccess = ValidateToken(impersonationToken.Id, identity: parentIdentity);
741743
if (userAccess == null)
742744
return null;
743745

744-
var endpoints = ListEndpoints(response.Data.UserAccess.Token.Id, parentIdentity);
746+
var endpoints = ListEndpoints(impersonationToken.Id, parentIdentity);
745747

746748
var serviceCatalog = BuildServiceCatalog(endpoints);
747749

0 commit comments

Comments
 (0)