From 00e809cb7e10944f2e2e13f292cfca57694217df Mon Sep 17 00:00:00 2001 From: Hariharan Jayaraman Date: Fri, 18 May 2018 15:21:49 -0700 Subject: [PATCH] Refactored the change into a new function --- builder/azure/arm/builder.go | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/builder/azure/arm/builder.go b/builder/azure/arm/builder.go index 7eb9e47f3..3aa7bcd5b 100644 --- a/builder/azure/arm/builder.go +++ b/builder/azure/arm/builder.go @@ -92,15 +92,7 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe return nil, err } - claims := jwt.MapClaims{} - var p jwt.Parser - - _, _, err = p.ParseUnverified(spnCloud.OAuthToken(), claims) - - if err != nil { - return nil, err - } - b.config.ObjectID = claims["oid"].(string) + b.config.ObjectID = getObjectIdFromToken(spnCloud) if b.config.ObjectID == "" && b.config.OSType != constants.Target_Linux { return nil, fmt.Errorf("could not determined the ObjectID for the user, which is required for Windows builds") @@ -425,3 +417,18 @@ func (b *Builder) getServicePrincipalTokens(say func(string)) (*adal.ServicePrin return servicePrincipalToken, servicePrincipalTokenVault, nil } + +func getObjectIdFromToken(token *adal.ServicePrincipalToken) (oid string) { + claims := jwt.MapClaims{} + var p jwt.Parser + + var err error + + _, _, err = p.ParseUnverified(token.OAuthToken(), claims) + + if err != nil { + return "" + } + return claims["oid"].(string) + +}