From 5c681c4007a1121a3d1e1b86e98eed0647f3d403 Mon Sep 17 00:00:00 2001 From: Nate Chadwick <263952448+natechadwick-intsof@users.noreply.github.com> Date: Fri, 28 Aug 2026 15:20:39 -0400 Subject: [PATCH] fix(deps): pin Shiro to Java 8-compatible line (1.13.0) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Switches all org.apache.shiro:shiro-* artifacts from the 2.x line to 1.13.0, the last Java 1.8 compatible release (1.x is EOL but the 2.0.0 release dropped Java 8 support). 1.13.0 ships Java 8 bytecode (major version 52) and the shiro.* API surface is unchanged for the ways this project uses it (web auth + JEE filter chain). Why not just one direct version pin? - 1.13.0 also pulls in shiro-cache and shiro-crypto-core transitively from shiro-core, and the spring/config/lang/crypto/event artifacts each have their own release line. Pinning shiro-core in dependencyManagement is not enough on its own; some modules resolved 2.1.0 for transitive artifacts (e.g. shiro-lang in shindig-uber) before this fix. The 9 dependencyManagement entries + the shiro.version property pin the whole shiro-* family in lockstep. Touched files (artifact ID / version only, no code changes): - pom.xml (root): + 1.13.0 in + 9 entries: shiro-core, shiro-web, shiro-spring, shiro-lang, shiro-event, shiro-config-core, shiro-config-ogdl, shiro-crypto-hash, shiro-crypto-cipher - modules/shindig-uber/pom.xml: ~ 2.1.0 -> ${shiro.version} on the only direct shiro-web declaration Verification: - ./mvn-env.sh clean install -DskipTests: BUILD SUCCESS (3:56) - javap -v on every resolved shiro-*-1.13.0.jar: major version 52 (covers shiro-core, shiro-web, shiro-spring, shiro-lang, shiro-event, shiro-config-core, shiro-config-ogdl, shiro-crypto-hash, shiro-crypto-cipher, shiro-cache, shiro-crypto-core — 11 jars, all Java 8 bytecode) - No UnsupportedClassVersionError in the build log Dependabot: - org.apache.shiro* and org.apache.shiro:* are already in the .github/dependabot.yml full-ignore list (added before #75), so this won't get auto-bumped to 2.x in the future. Notes: - The maven-shade-plugin exclusions on shiro-web and shiro-core in modules/shindig-uber/pom.xml are kept as-is. They exclude these two jars from the shaded uber-jar; that decision predates this PR and is independent of the bytecode-version fix. Re-evaluating whether to shade them in is a separate conversation. - This is the second half of the bytecode-mismatch bug originally tracked in #74. BouncyCastle half was fixed by #77. Fixes #78 > Co-Authored by Mavis v1.0.0 using minimax-m3 with agent mavis. --- modules/shindig-uber/pom.xml | 2 +- pom.xml | 47 ++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/modules/shindig-uber/pom.xml b/modules/shindig-uber/pom.xml index 2484980024..c8f42f299a 100644 --- a/modules/shindig-uber/pom.xml +++ b/modules/shindig-uber/pom.xml @@ -171,7 +171,7 @@ org.apache.shiro shiro-web - 2.1.0 + ${shiro.version} compile diff --git a/pom.xml b/pom.xml index ecbdd3458e..3b29b559d9 100644 --- a/pom.xml +++ b/pom.xml @@ -191,6 +191,7 @@ 6.5.3 4.0.1 1.1-BETA5-incubating + 1.13.0 2.7.1 1.1.2 true @@ -1223,6 +1224,52 @@ poi-ooxml-schemas ${poi.version} + + + org.apache.shiro + shiro-core + ${shiro.version} + + + org.apache.shiro + shiro-web + ${shiro.version} + + + org.apache.shiro + shiro-spring + ${shiro.version} + + + org.apache.shiro + shiro-lang + ${shiro.version} + + + org.apache.shiro + shiro-event + ${shiro.version} + + + org.apache.shiro + shiro-config-core + ${shiro.version} + + + org.apache.shiro + shiro-config-ogdl + ${shiro.version} + + + org.apache.shiro + shiro-crypto-hash + ${shiro.version} + + + org.apache.shiro + shiro-crypto-cipher + ${shiro.version} + commons-betwixt