Apache Shiro has evolved considerably across its major versions. Each release brings improvements in security defaults, compatibility with modern Java and Jakarta EE specifications, and better integration with Spring ecosystems. However, these improvements sometimes require changes to existing applications.
The migration path depends on your starting point:
-
1.x to 2.x: Focuses on Java 11 adoption and optional Jakarta EE namespace support via classifiers
-
2.x to 3.x: Brings Java 17 as the baseline, native Jakarta EE 10+ support, and several security behavior changes that affect default application behavior
Before upgrading, review your current Shiro version and dependencies, then follow the appropriate section below.