fix(deps): replace bouncycastle jdk15on with jdk18on 1.85 - #4312
Open
orangeCatDeveloper wants to merge 1 commit into
Open
fix(deps): replace bouncycastle jdk15on with jdk18on 1.85#4312orangeCatDeveloper wants to merge 1 commit into
orangeCatDeveloper wants to merge 1 commit into
Conversation
Duansg
approved these changes
Aug 13, 2026
orangeCatDeveloper
force-pushed
the
fix/3540-bouncycastle-jdk18on
branch
2 times, most recently
from
August 14, 2026 06:20
e7a8273 to
01bc750
Compare
orangeCatDeveloper
force-pushed
the
fix/3540-bouncycastle-jdk18on
branch
from
August 15, 2026 07:46
01bc750 to
9f78312
Compare
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.
What's changed?
Fixes #3540: the project ships BouncyCastle from the abandoned
jdk15online (bcpkix-jdk15on:1.68, 2020) — it no longer receives releases, so its known CVEs will never be patched, and every dependency scan flags it. The maintainedjdk18online shares package and class names, so it is a drop-in replacement; the version is managed once in the root pom:jdk15onenters the build through two different doors, fixed differently:1. Direct dependency (
hertzbeat-collector-basic)MqttSslFactoryuses BC to parse client certificates/keys for MQTT TLS auth, via a hardcodedbcpkix-jdk15on:1.68in the module pom. Straight swap tobcpkix-jdk18on:${bouncycastle.version}.2. Transitive dependency (
hertzbeat-collector-nebulagraph)The vesoft NebulaGraph client brings jdk15on with it — we don't control its pom, so the module now excludes the jdk15on jars from the vesoft dependency and supplies jdk18on explicitly. The vesoft client was compiled against jdk15on, but since both lines expose identical packages/classes it links against jdk18on unchanged — proven by a smoke test that runs its
SslUtilon the new jars.License material
material/licensesis bundled into the binary distribution, so the three manifests and the six per-artifactLICENSE-bc*-*.txtfiles are renamed/updated tojdk18on/1.85 — otherwise the release would declare components it no longer ships.Verification
Dependency tree, before → after:
jdk15onno longer appears anywhere in the reactor, and the docker image lib/ carries only the three jdk18on jars. Every BC consumer was exercised against 1.85, not just compiled:MqttSslFactoryTestparses generated PKCS#1 and PKCS#8 private keys through the productiongetMslSocketFactorypath.VesoftSslBouncyCastleSmokeTestfeeds a BC-generated certificate through the vesoft client's ownSslUtil.SshHelper.getConnectSessioncompleted a real handshake (AUTHED) against OpenSSH 9.6.Full test suites of all modules with BC on the classpath (collector-common, collector-basic, collector-nebulagraph, collector-collector, push) pass.
Checklist
Add or update API