@@ -233,64 +233,95 @@ func TestUnitAuthenticateBySAML(t *testing.T) {
233
233
TokenAccessor : getSimpleTokenAccessor (),
234
234
}
235
235
var err error
236
- _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password )
236
+ _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password , ConfigBoolFalse )
237
237
assertNotNilF (t , err , "should have failed at FuncPostAuthSAML." )
238
238
assertEqualE (t , err .Error (), "failed to get SAML response" )
239
239
240
240
sr .FuncPostAuthSAML = postAuthSAMLAuthFail
241
- _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password )
241
+ _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password , ConfigBoolFalse )
242
242
assertNotNilF (t , err , "should have failed at FuncPostAuthSAML." )
243
243
assertEqualE (t , err .Error (), "strconv.Atoi: parsing \" \" : invalid syntax" )
244
244
245
245
sr .FuncPostAuthSAML = postAuthSAMLAuthFailWithCode
246
- _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password )
246
+ _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password , ConfigBoolFalse )
247
247
assertNotNilF (t , err , "should have failed at FuncPostAuthSAML." )
248
248
driverErr , ok := err .(* SnowflakeError )
249
249
assertTrueF (t , ok , "should be a SnowflakeError" )
250
250
assertEqualE (t , driverErr .Number , ErrCodeIdpConnectionError )
251
251
252
252
sr .FuncPostAuthSAML = postAuthSAMLAuthSuccessButInvalidURL
253
- _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password )
253
+ _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password , ConfigBoolFalse )
254
254
assertNotNilF (t , err , "should have failed at FuncPostAuthSAML." )
255
255
driverErr , ok = err .(* SnowflakeError )
256
256
assertTrueF (t , ok , "should be a SnowflakeError" )
257
257
assertEqualE (t , driverErr .Number , ErrCodeIdpConnectionError )
258
258
259
259
sr .FuncPostAuthSAML = postAuthSAMLAuthSuccessButInvalidTokenURL
260
- _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password )
260
+ _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password , ConfigBoolFalse )
261
261
assertNotNilF (t , err , "should have failed at FuncPostAuthSAML." )
262
262
assertEqualE (t , err .Error (), "failed to parse token URL. invalid!@url$%^" )
263
263
264
264
sr .FuncPostAuthSAML = postAuthSAMLAuthSuccessButInvalidSSOURL
265
- _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password )
265
+ _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password , ConfigBoolFalse )
266
266
assertNotNilF (t , err , "should have failed at FuncPostAuthSAML." )
267
267
assertEqualE (t , err .Error (), "failed to parse SSO URL. invalid!@url$%^" )
268
268
269
269
sr .FuncPostAuthSAML = postAuthSAMLAuthSuccess
270
270
sr .FuncPostAuthOKTA = postAuthOKTAError
271
- _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password )
271
+ _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password , ConfigBoolFalse )
272
272
assertNotNilF (t , err , "should have failed at FuncPostAuthOKTA." )
273
273
assertEqualE (t , err .Error (), "failed to get SAML response" )
274
274
275
275
sr .FuncPostAuthOKTA = postAuthOKTASuccess
276
276
sr .FuncGetSSO = getSSOError
277
- _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password )
277
+ _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password , ConfigBoolFalse )
278
278
assertNotNilF (t , err , "should have failed at FuncGetSSO." )
279
279
assertEqualE (t , err .Error (), "failed to get SSO html" )
280
280
281
281
sr .FuncGetSSO = getSSOSuccessButInvalidURL
282
- _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password )
282
+ _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password , ConfigBoolFalse )
283
283
assertNotNilF (t , err , "should have failed at FuncGetSSO." )
284
284
assertHasPrefixE (t , err .Error (), "failed to find action field in HTML response" )
285
285
286
286
sr .FuncGetSSO = getSSOSuccess
287
- _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password )
287
+ _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password , ConfigBoolFalse )
288
288
assertNilF (t , err , "should have succeeded at FuncGetSSO." )
289
289
290
290
sr .FuncGetSSO = getSSOSuccessButWrongPrefixURL
291
- _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password )
291
+ _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password , ConfigBoolFalse )
292
292
assertNotNilF (t , err , "should have failed at FuncGetSSO." )
293
293
driverErr , ok = err .(* SnowflakeError )
294
294
assertTrueF (t , ok , "should be a SnowflakeError" )
295
295
assertEqualE (t , driverErr .Number , ErrCodeSSOURLNotMatch )
296
296
}
297
+
298
+ func TestDisableSamlURLCheck (t * testing.T ) {
299
+ authenticator := & url.URL {
300
+ Scheme : "https" ,
301
+ Host : "abc.com" ,
302
+ }
303
+ application := "testapp"
304
+ account := "testaccount"
305
+ user := "u"
306
+ password := "p"
307
+ sr := & snowflakeRestful {
308
+ Protocol : "https" ,
309
+ Host : "abc.com" ,
310
+ Port : 443 ,
311
+ FuncPostAuthSAML : postAuthSAMLAuthSuccess ,
312
+ FuncPostAuthOKTA : postAuthOKTASuccess ,
313
+ FuncGetSSO : getSSOSuccessButWrongPrefixURL ,
314
+ TokenAccessor : getSimpleTokenAccessor (),
315
+ }
316
+ var err error
317
+ // Test for disabled SAML URL check
318
+ _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password , ConfigBoolTrue )
319
+ assertNilF (t , err , "SAML URL check should have disabled." )
320
+
321
+ // Test for enabled SAML URL check
322
+ _ , err = authenticateBySAML (context .Background (), sr , authenticator , application , account , user , password , ConfigBoolFalse )
323
+ assertNotNilF (t , err , "should have failed at FuncGetSSO." )
324
+ driverErr , ok := err .(* SnowflakeError )
325
+ assertTrueF (t , ok , "should be a SnowflakeError" )
326
+ assertEqualE (t , driverErr .Number , ErrCodeSSOURLNotMatch )
327
+ }
0 commit comments