diff --git a/src/main/java/net/snowflake/client/core/SessionUtil.java b/src/main/java/net/snowflake/client/core/SessionUtil.java index 315f37ead..dc3b4969a 100644 --- a/src/main/java/net/snowflake/client/core/SessionUtil.java +++ b/src/main/java/net/snowflake/client/core/SessionUtil.java @@ -306,6 +306,8 @@ static SFLoginOutput openSession( } } + convertSessionParameterStringValueToBooleanIfGiven(loginInput, CLIENT_REQUEST_MFA_TOKEN); + preNewSession(loginInput); try { @@ -317,6 +319,16 @@ static SFLoginOutput openSession( } } + private static void convertSessionParameterStringValueToBooleanIfGiven( + SFLoginInput loginInput, String parameterName) { + Object currentClientRequestMfaToken = loginInput.getSessionParameters().get(parameterName); + if (currentClientRequestMfaToken instanceof String) { + loginInput + .getSessionParameters() + .put(parameterName, Boolean.parseBoolean((String) currentClientRequestMfaToken)); + } + } + private static void preNewSession(SFLoginInput loginInput) throws SFException { if (asBoolean(loginInput.getSessionParameters().get(CLIENT_STORE_TEMPORARY_CREDENTIAL))) { CredentialManager.getInstance().fillCachedIdToken(loginInput);