@@ -80,11 +80,17 @@ func GetOAuthTokenManagerInstance() (*common.UserOAuthTokenManager, error) {
80
80
var err error
81
81
autoOAuth .Do (func () {
82
82
var lca loginCmdArgs
83
- if glcm .GetEnvironmentVariable (common .EEnvironmentVariable .AutoLoginType ()) == "" {
84
- err = errors .New ("no login type specified" )
83
+ autoLoginType := strings .ToUpper (glcm .GetEnvironmentVariable (common .EEnvironmentVariable .AutoLoginType ()))
84
+ if autoLoginType == "" {
85
+ glcm .Info ("Autologin not specified." )
85
86
return
86
87
}
87
88
89
+ if autoLoginType != "SPN" && autoLoginType != "MSI" && autoLoginType != "DEVICE" {
90
+ glcm .Error ("Invalid Auto-login type specified." )
91
+ return
92
+ }
93
+
88
94
if tenantID := glcm .GetEnvironmentVariable (common .EEnvironmentVariable .TenantID ()); tenantID != "" {
89
95
lca .tenantID = tenantID
90
96
}
@@ -113,7 +119,9 @@ func GetOAuthTokenManagerInstance() (*common.UserOAuthTokenManager, error) {
113
119
}
114
120
115
121
lca .persistToken = false
116
- err = lca .process ()
122
+ if err = lca .process (); err != nil {
123
+ glcm .Error (fmt .Sprintf ("Failed to perform Auto-login: %v." , err .Error ()))
124
+ }
117
125
})
118
126
119
127
if err != nil {
@@ -550,13 +558,6 @@ func doGetCredentialTypeForLocation(ctx context.Context, location common.Locatio
550
558
credType = common .ECredentialType .Anonymous ()
551
559
case common .ELocation .Blob ():
552
560
credType , isPublic , err = getBlobCredentialType (ctx , resource , isSource , resourceSAS , cpkOptions )
553
- if azErr , ok := err .(common.AzError ); ok && azErr .Equals (common .EAzError .LoginCredMissing ()) {
554
- _ , autoLoginErr := GetOAuthTokenManagerInstance ()
555
- if autoLoginErr == nil {
556
- err = nil // Autologin succeeded, reset original error
557
- credType , isPublic = common .ECredentialType .OAuthToken (), false
558
- }
559
- }
560
561
if err != nil {
561
562
return common .ECredentialType .Unknown (), false , err
562
563
}
@@ -566,13 +567,6 @@ func doGetCredentialTypeForLocation(ctx context.Context, location common.Locatio
566
567
}
567
568
case common .ELocation .BlobFS ():
568
569
credType , err = getBlobFSCredentialType (ctx , resource , resourceSAS != "" )
569
- if azErr , ok := err .(common.AzError ); ok && azErr .Equals (common .EAzError .LoginCredMissing ()) {
570
- _ , autoLoginErr := GetOAuthTokenManagerInstance ()
571
- if autoLoginErr == nil {
572
- err = nil // Autologin succeeded, reset original error
573
- credType , isPublic = common .ECredentialType .OAuthToken (), false
574
- }
575
- }
576
570
if err != nil {
577
571
return common .ECredentialType .Unknown (), false , err
578
572
}
0 commit comments