SNOW-926149 Fix issues while using snowflake-jdbc-fips #596
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR implements support for FIPS-compliant JDBC driver
snowflake-jdbc-fips
, which some users are using instead of the defaultsnowflake-jdbc
. The difference is that thesnowflake-jdbc
shades bouncy castle, butsnowflake-jdbc-fips
declares FIPS compliant bouncy castle JARs in itspom.xml
.The existing SDK versions are not working with
snowflake-jdbc-fips
because they assume that bouncy castle is bundled in the JDBC driver and thatBouncyCastleProvider
exists on classpath, but in case of the FIPS version, the provider class name isBouncyCastleFipsProvider
.Documentation has been updated with instructions how to use the SDK in a FIPS-compliant way.
This PR also introduces a new external testing suite - a dedicated maven project, which does not test the SDK from "within" the SDK maven project, like our existing unit and integrations tests do, but runs a simple integration test with the SDK declared as a standard Maven dependency, installed into the local Maven repository. This suite can detect issues with JAR builds, for example. There is a wrapper script, which builds the SDK and orchestrates the end-to-end JAR tests. The following JAR variants are tested: shaded, unshaded and FIPS-compliant setups.