Fix Access decryption: jackcess-encrypt groupId conflict and missing CodecProvider wiring - #771
Open
spannm wants to merge 2 commits into
Open
Fix Access decryption: jackcess-encrypt groupId conflict and missing CodecProvider wiring#771spannm wants to merge 2 commits into
spannm wants to merge 2 commits into
Conversation
…ersion UCanAccess (io.github.spannm) now depends on io.github.spannm:jackcess instead of com.healthmarketscience.jackcess:jackcess, so the module's com.healthmarketscience.jackcess:jackcess-encrypt dependency pulled in a second, incompatible jackcess jar on the classpath. Switched to the matching io.github.spannm:jackcess-encrypt artifact and bumped both dependencies to their latest compatible releases (ucanaccess 5.1.7, jackcess-encrypt 5.1.5, both built against jackcess 5.1.5).
…rypt UCanAccess forwards the password given to withPassword() only to the active IJackcessOpenerInterface implementation; it never registers a CodecProvider itself. Since the module relied on UCanAccess's DefaultJackcessOpener, the password was accepted but silently dropped for AES-encrypted (Access 2007+) databases - jackcess-encrypt was a dependency but never actually invoked. Added MsAccessCryptCodecJackcessOpener, a small IJackcessOpenerInterface implementation that wires the password into a jackcess-encrypt CryptCodecProvider, and register it via the jackcessOpener connection property whenever a password is supplied.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
io.github.spannm) now depends onio.github.spannm:jackcessinstead ofcom.healthmarketscience.jackcess:jackcess. The module'sjackcess-encryptdependency still pointed at the oldcom.healthmarketscience.jackcessgroupId, pulling in a second, incompatible jackcess jar. Switched to the matchingio.github.spannm:jackcess-encryptartifact and bumped both dependencies to their latest compatible releases (ucanaccess 5.1.7, jackcess-encrypt 5.1.5, both built against jackcess 5.1.5).withPassword()to the activeIJackcessOpenerInterfaceimplementation; it never registers aCodecProvideritself. Relying on UCanAccess'sDefaultJackcessOpenermeant the password was accepted but silently dropped for AES-encrypted (Access 2007+) databases —jackcess-encryptwas a dependency but never actually invoked. AddedMsAccessCryptCodecJackcessOpener, anIJackcessOpenerInterfaceimplementation that wires the password into ajackcess-encryptCryptCodecProvider, registered via thejackcessOpenerconnection property whenever a password is supplied.Test plan
mvn compileondbptk-module-ms-accesssucceeds