From b8787158eaf773d41cd67614e8e691d7a8b3740f Mon Sep 17 00:00:00 2001 From: lilgreenbird Date: Wed, 18 Jan 2023 14:07:00 -0800 Subject: [PATCH 1/3] added throttling error --- .../jdbc/fedauth/ErrorMessageTest.java | 19 ++++++++++++------- .../sqlserver/jdbc/fedauth/FedauthCommon.java | 1 + 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/test/java/com/microsoft/sqlserver/jdbc/fedauth/ErrorMessageTest.java b/src/test/java/com/microsoft/sqlserver/jdbc/fedauth/ErrorMessageTest.java index 933e7559cc..745f96adf7 100644 --- a/src/test/java/com/microsoft/sqlserver/jdbc/fedauth/ErrorMessageTest.java +++ b/src/test/java/com/microsoft/sqlserver/jdbc/fedauth/ErrorMessageTest.java @@ -12,7 +12,6 @@ import java.sql.SQLException; import java.util.Properties; -import com.microsoft.sqlserver.jdbc.TestUtils; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; @@ -230,7 +229,8 @@ public void testADPasswordUnregisteredUserWithConnectionStringUserName() throws e.getMessage() .contains(ERR_MSG_FAILED_AUTHENTICATE + " the user " + badUserName + " in Active Directory (Authentication=ActiveDirectoryPassword).") - && e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_ADD)); + && (e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_ADD) + || e.getCause().getCause().getMessage().contains(ERR_MSG_REQUEST_THROTTLED))); } } @@ -251,7 +251,8 @@ public void testADPasswordUnregisteredUserWithDatasource() throws SQLException { e.getMessage() .contains(ERR_MSG_FAILED_AUTHENTICATE + " the user " + badUserName + " in Active Directory (Authentication=ActiveDirectoryPassword).") - && e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_ADD)); + && (e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_ADD) + || e.getCause().getCause().getMessage().contains(ERR_MSG_REQUEST_THROTTLED))); } } @@ -265,7 +266,8 @@ public void testADPasswordUnregisteredUserWithConnectionStringUser() throws SQLE e.getMessage() .contains(ERR_MSG_FAILED_AUTHENTICATE + " the user " + badUserName + " in Active Directory (Authentication=ActiveDirectoryPassword).") - && e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_ADD)); + && (e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_ADD) + || e.getCause().getCause().getMessage().contains(ERR_MSG_REQUEST_THROTTLED))); } } @@ -402,7 +404,8 @@ public void testADPasswordWrongPasswordWithConnectionStringUserName() throws SQL .contains(ERR_MSG_FAILED_AUTHENTICATE + " the user " + azureUserName + " in Active Directory (Authentication=ActiveDirectoryPassword).") && (e.getCause().getCause().getMessage().toLowerCase().contains("invalid username or password") - || e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_TOO_MANY))); + || e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_TOO_MANY) + || e.getCause().getCause().getMessage().contains(ERR_MSG_REQUEST_THROTTLED))); } } @@ -427,7 +430,8 @@ public void testADPasswordWrongPasswordWithDatasource() throws SQLException { .contains(ERR_MSG_FAILED_AUTHENTICATE + " the user " + azureUserName + " in Active Directory (Authentication=ActiveDirectoryPassword).") && (e.getCause().getCause().getMessage().toLowerCase().contains("invalid username or password") - || e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_TOO_MANY))); + || e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_TOO_MANY) + || e.getCause().getCause().getMessage().contains(ERR_MSG_REQUEST_THROTTLED))); } } @@ -446,7 +450,8 @@ public void testADPasswordWrongPasswordWithConnectionStringUser() throws SQLExce .contains(ERR_MSG_FAILED_AUTHENTICATE + " the user " + azureUserName + " in Active Directory (Authentication=ActiveDirectoryPassword).") && (e.getCause().getCause().getMessage().toLowerCase().contains("invalid username or password") - || e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_TOO_MANY))); + || e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_TOO_MANY) + || e.getCause().getCause().getMessage().contains(ERR_MSG_REQUEST_THROTTLED))); } } diff --git a/src/test/java/com/microsoft/sqlserver/jdbc/fedauth/FedauthCommon.java b/src/test/java/com/microsoft/sqlserver/jdbc/fedauth/FedauthCommon.java index 53f34adb65..aa26e7af3b 100644 --- a/src/test/java/com/microsoft/sqlserver/jdbc/fedauth/FedauthCommon.java +++ b/src/test/java/com/microsoft/sqlserver/jdbc/fedauth/FedauthCommon.java @@ -83,6 +83,7 @@ public class FedauthCommon extends AbstractTest { static final String ERR_MSG_RESULTSET_IS_CLOSED = TestUtils.R_BUNDLE.getString("R_resultsetClosed"); static final String ERR_MSG_SOCKET_CLOSED = TestResource.getResource("R_socketClosed"); static final String ERR_TCPIP_CONNECTION = TestResource.getResource("R_tcpipConnectionToHost"); + static final String ERR_MSG_REQUEST_THROTTLED = "Request was throttled"; enum SqlAuthentication { NotSpecified, From 3ffe58e8ee53a43e4093621f6c0dd10d945d9098 Mon Sep 17 00:00:00 2001 From: lilgreenbird Date: Wed, 18 Jan 2023 14:23:15 -0800 Subject: [PATCH 2/3] update --- .../jdbc/fedauth/ErrorMessageTest.java | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/test/java/com/microsoft/sqlserver/jdbc/fedauth/ErrorMessageTest.java b/src/test/java/com/microsoft/sqlserver/jdbc/fedauth/ErrorMessageTest.java index 745f96adf7..7ca0ccbe73 100644 --- a/src/test/java/com/microsoft/sqlserver/jdbc/fedauth/ErrorMessageTest.java +++ b/src/test/java/com/microsoft/sqlserver/jdbc/fedauth/ErrorMessageTest.java @@ -226,11 +226,11 @@ public void testADPasswordUnregisteredUserWithConnectionStringUserName() throws fail(EXPECTED_EXCEPTION_NOT_THROWN); } catch (SQLServerException e) { assertTrue(INVALID_EXCEPTION_MSG + ": " + e.getMessage(), - e.getMessage() + (e.getMessage() .contains(ERR_MSG_FAILED_AUTHENTICATE + " the user " + badUserName + " in Active Directory (Authentication=ActiveDirectoryPassword).") - && (e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_ADD) - || e.getCause().getCause().getMessage().contains(ERR_MSG_REQUEST_THROTTLED))); + && e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_ADD)) + || e.getMessage().contains(ERR_MSG_REQUEST_THROTTLED)); } } @@ -248,11 +248,11 @@ public void testADPasswordUnregisteredUserWithDatasource() throws SQLException { fail(EXPECTED_EXCEPTION_NOT_THROWN); } catch (SQLServerException e) { assertTrue(INVALID_EXCEPTION_MSG + ": " + e.getMessage(), - e.getMessage() + (e.getMessage() .contains(ERR_MSG_FAILED_AUTHENTICATE + " the user " + badUserName + " in Active Directory (Authentication=ActiveDirectoryPassword).") - && (e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_ADD) - || e.getCause().getCause().getMessage().contains(ERR_MSG_REQUEST_THROTTLED))); + && e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_ADD)) + || e.getMessage().contains(ERR_MSG_REQUEST_THROTTLED)); } } @@ -263,11 +263,11 @@ public void testADPasswordUnregisteredUserWithConnectionStringUser() throws SQLE fail(EXPECTED_EXCEPTION_NOT_THROWN); } catch (SQLServerException e) { assertTrue(INVALID_EXCEPTION_MSG + ": " + e.getMessage(), - e.getMessage() + (e.getMessage() .contains(ERR_MSG_FAILED_AUTHENTICATE + " the user " + badUserName + " in Active Directory (Authentication=ActiveDirectoryPassword).") - && (e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_ADD) - || e.getCause().getCause().getMessage().contains(ERR_MSG_REQUEST_THROTTLED))); + && e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_ADD)) + || e.getMessage().contains(ERR_MSG_REQUEST_THROTTLED)); } } @@ -400,12 +400,12 @@ public void testADPasswordWrongPasswordWithConnectionStringUserName() throws SQL fail(EXPECTED_EXCEPTION_NOT_THROWN); } - assertTrue(INVALID_EXCEPTION_MSG + ": " + e.getMessage(), e.getMessage() + assertTrue(INVALID_EXCEPTION_MSG + ": " + e.getMessage(), (e.getMessage() .contains(ERR_MSG_FAILED_AUTHENTICATE + " the user " + azureUserName + " in Active Directory (Authentication=ActiveDirectoryPassword).") - && (e.getCause().getCause().getMessage().toLowerCase().contains("invalid username or password") - || e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_TOO_MANY) - || e.getCause().getCause().getMessage().contains(ERR_MSG_REQUEST_THROTTLED))); + && e.getCause().getCause().getMessage().toLowerCase().contains("invalid username or password") + || e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_TOO_MANY)) + || e.getMessage().contains(ERR_MSG_REQUEST_THROTTLED)); } } @@ -426,12 +426,12 @@ public void testADPasswordWrongPasswordWithDatasource() throws SQLException { fail(EXPECTED_EXCEPTION_NOT_THROWN); } - assertTrue(INVALID_EXCEPTION_MSG + ": " + e.getMessage(), e.getMessage() + assertTrue(INVALID_EXCEPTION_MSG + ": " + e.getMessage(), (e.getMessage() .contains(ERR_MSG_FAILED_AUTHENTICATE + " the user " + azureUserName + " in Active Directory (Authentication=ActiveDirectoryPassword).") - && (e.getCause().getCause().getMessage().toLowerCase().contains("invalid username or password") - || e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_TOO_MANY) - || e.getCause().getCause().getMessage().contains(ERR_MSG_REQUEST_THROTTLED))); + && e.getCause().getCause().getMessage().toLowerCase().contains("invalid username or password") + || e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_TOO_MANY)) + || e.getMessage().contains(ERR_MSG_REQUEST_THROTTLED)); } } @@ -446,12 +446,12 @@ public void testADPasswordWrongPasswordWithConnectionStringUser() throws SQLExce fail(EXPECTED_EXCEPTION_NOT_THROWN); } - assertTrue(INVALID_EXCEPTION_MSG + ": " + e.getMessage(), e.getMessage() + assertTrue(INVALID_EXCEPTION_MSG + ": " + e.getMessage(), (e.getMessage() .contains(ERR_MSG_FAILED_AUTHENTICATE + " the user " + azureUserName + " in Active Directory (Authentication=ActiveDirectoryPassword).") - && (e.getCause().getCause().getMessage().toLowerCase().contains("invalid username or password") - || e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_TOO_MANY) - || e.getCause().getCause().getMessage().contains(ERR_MSG_REQUEST_THROTTLED))); + && e.getCause().getCause().getMessage().toLowerCase().contains("invalid username or password") + || e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_TOO_MANY)) + || e.getMessage().contains(ERR_MSG_REQUEST_THROTTLED)); } } From 637f94031d8563d2a1414e67ce2ec424cc37b92b Mon Sep 17 00:00:00 2001 From: lilgreenbird Date: Wed, 18 Jan 2023 14:49:44 -0800 Subject: [PATCH 3/3] increase timeout --- .../sqlserver/jdbc/resiliency/BasicConnectionTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/microsoft/sqlserver/jdbc/resiliency/BasicConnectionTest.java b/src/test/java/com/microsoft/sqlserver/jdbc/resiliency/BasicConnectionTest.java index 8b508e5b9c..050eb6a584 100644 --- a/src/test/java/com/microsoft/sqlserver/jdbc/resiliency/BasicConnectionTest.java +++ b/src/test/java/com/microsoft/sqlserver/jdbc/resiliency/BasicConnectionTest.java @@ -57,7 +57,7 @@ public void testBasicConnectionAAD() throws SQLException { org.junit.Assume.assumeTrue(azureServer != null && !azureServer.isEmpty()); basicReconnect("jdbc:sqlserver://" + azureServer + ";database=" + azureDatabase + ";user=" + azureUserName - + ";password=" + azurePassword + ";loginTimeout=30;Authentication=ActiveDirectoryPassword"); + + ";password=" + azurePassword + ";loginTimeout=90;Authentication=ActiveDirectoryPassword"); } @Test