This is an automated email from the ASF dual-hosted git repository. lprimak pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/shiro-site.git
commit 4eef7452c46b012a34b11c7e9272b69534a136f1 Author: lprimak <[email protected]> AuthorDate: Mon Jul 6 19:47:41 2026 -0500 enh: update docs, downloads to 3.x --- .../blog/2026/06/apache-shiro-300-released.adoc | 3 + src/site/content/dependency-chain.adoc | 66 +++++++++++++++- src/site/content/download.adoc | 4 +- src/site/content/jakarta-ee.adoc | 89 +--------------------- src/site/data/artifacts.yaml | 6 ++ src/site/data/releases.yaml | 26 ++++++- src/site/templates/download.ftl | 4 +- src/site/templates/macros/versions.ftl | 1 + 8 files changed, 104 insertions(+), 95 deletions(-) diff --git a/src/site/content/blog/2026/06/apache-shiro-300-released.adoc b/src/site/content/blog/2026/06/apache-shiro-300-released.adoc index 5dc2e019b..20f990b47 100644 --- a/src/site/content/blog/2026/06/apache-shiro-300-released.adoc +++ b/src/site/content/blog/2026/06/apache-shiro-300-released.adoc @@ -51,6 +51,9 @@ This is a new major release of Apache Shiro, with many new features and improvem * Added NoAccessFilter and add it to the default filter chain (breaking change, hardened-by-default) * Enable CORS preflight requests by default +== End-of-life notice +Apache Shiro 1.x and 2.x are now considered end-of-life. If support for these versions is required, please check link:/commercial-support.html[Commercial Support] + == Thank you to the following contributors! * https://github.com/janitza-mage[Martin Geisse] diff --git a/src/site/content/dependency-chain.adoc b/src/site/content/dependency-chain.adoc index 0bae58aee..9ce0a1f9b 100644 --- a/src/site/content/dependency-chain.adoc +++ b/src/site/content/dependency-chain.adoc @@ -9,12 +9,13 @@ Managing Apache Shiro dependencies in Jakarta EE projects can be simplified using the FlowLogix Dependency Chains. This approach provides a cleaner alternative to managing the BOM (Bill of Materials) directly, reducing configuration complexity and common errors. == Applicability -This guide is intended for Jakarta EE projects using Apache Shiro for security. +This guide is intended for Jakarta EE projects using Apache Shiro 2.x for security. +It is not applicable to Shiro 3.x [NOTE] ==== Dependency chains are not suitable for Spring or SpringBoot projects ==== -For Spring / SpringBoot projects, you need to use a link:jakarta-ee.html#bom_approach[traditional BOM approach] +For Spring / SpringBoot projects, you need to use a link:#bom_approach[traditional BOM approach] == What is the FlowLogix Dependency Chain? @@ -191,3 +192,64 @@ To migrate an existing project from the traditional BOM approach: 4. Remove any manually specified `jakarta` classifiers The dependency chain automatically handles classifier configuration and ensures all required components are included with compatible versions. + +[#bom_approach] +=== Traditional BOM with Individual Dependencies + +Alternatively, use the Shiro artifacts with Jakarta classifiers directly + +Import the Shiro BOM as seen below +[NOTE] +==== +Shiro BOM is a *necessary* step, unless you are using FlowLogix Depchain as described above. +The BOM is needed if you are using Spring / SpringBoot. +==== + +[source,xml] +---- +<dependencyManagement> + <dependencies> + <dependency> + <groupId>org.apache.shiro</groupId> + <artifactId>shiro-bom</artifactId> + <version>${versions.latestRelease}</version> + <scope>import</scope> + <type>pom</type> + </dependency> + </dependencies> +</dependencyManagement> +---- + +[source,xml] +---- +<dependency> + <groupId>org.apache.shiro</groupId> + <artifactId>shiro-jakarta-ee</artifactId> + <classifier>jakarta</classifier> +</dependency> + +<dependency> + <groupId>org.apache.shiro</groupId> + <artifactId>shiro-cdi</artifactId> + <classifier>jakarta</classifier> +</dependency> + +<dependency> + <groupId>org.apache.shiro</groupId> + <artifactId>shiro-core</artifactId> + <classifier>jakarta</classifier> +</dependency> + +<dependency> + <groupId>org.apache.shiro</groupId> + <artifactId>shiro-web</artifactId> + <classifier>jakarta</classifier> +</dependency> + +<dependency> + <groupId>org.omnifaces</groupId> + <artifactId>omnifaces</artifactId> + <!-- replace LATEST with a version number --> + <version>LATEST</version> +</dependency> +---- diff --git a/src/site/content/download.adoc b/src/site/content/download.adoc index a06e84fe7..168516e4f 100644 --- a/src/site/content/download.adoc +++ b/src/site/content/download.adoc @@ -4,11 +4,11 @@ :jbake-status: published :jbake-tags: download, installation, maven, gradle :jbake-description: Download Apache Shiro security framework. Get the latest stable release with Maven/Gradle dependencies and verify signatures. -:jbake-releases: {"versions":["shiro22x"]} +:jbake-releases: {"versions":["shiro30x"]} :idprefix: :icons: font -Apache Shiro ${versions.latestRelease} is the current stable release (Java 11+). +Apache Shiro ${versions.latestRelease} is the current stable release (Java 17+). To download Shiro please follow the instructions below. diff --git a/src/site/content/jakarta-ee.adoc b/src/site/content/jakarta-ee.adoc index 1ad8c5fc7..7d2fd5614 100644 --- a/src/site/content/jakarta-ee.adoc +++ b/src/site/content/jakarta-ee.adoc @@ -11,7 +11,7 @@ Apache Shiro Jakarta EE module makes it transparent to use Shiro features in Jak with minimal configuration. It makes annotations such as `@RequiresRoles` available in Jakarta EE (CDI, EJB, etc.) code. NOTE: Jakarta EE integration is available in Shiro 2.0 or later. + -The module is compatible with Java EE 8 through Jakarta EE 10 or later. It may work with earlier versions of Jakarta EE but was not tested with those. +The module is compatible with Jakarta EE 10 through Jakarta EE 11 or later. It may work with earlier versions of Jakarta EE but was not tested with those. == Dependencies @@ -39,93 +39,6 @@ Jakarta EE module depends on CDI and Jax-RS submodules to fully integrate with t === Jakarta EE Security Annotations (JSR-250) In addition to all Shiro annotations, Jakarta EE module allows to specify Jakarta EE security annotations such as `@RolesAllowed`, `@DenyAll` and `@PermitAll` on your beans -=== How to use Jakarta 9+ (jakarta.* namespace) - -There are two approaches to include Shiro Jakarta EE dependencies in your project: - -==== Option 1: FlowLogix Dependency Chain (Recommended) -[NOTE] -==== -This option is applicable only to Jakarta EE, not Spring / SpringBoot. -==== - -The simplest approach is to use the FlowLogix dependency chain, which bundles all required Shiro Jakarta EE components in a single dependency: - -[source,xml] ----- -<dependencies> - <dependency> - <groupId>com.flowlogix.depchain</groupId> - <artifactId>shiro-jakarta</artifactId> - <!-- replace LATEST with a version number --> - <version>LATEST</version> - </dependency> -</dependencies> ----- - -This approach automatically includes all Shiro modules (`shiro-core`, `shiro-web`, `shiro-jakarta-ee`, `shiro-cdi`, `shiro-jaxrs`) with the correct Jakarta classifier, plus required dependencies like OmniFaces. See the link:dependency-chain.html[Dependency Chain Guide] for more details, Gradle examples, and migration instructions. - -[#bom_approach] -==== Option 2: Traditional BOM with Individual Dependencies - -Alternatively, use the Shiro artifacts with Jakarta classifiers directly - -Import the Shiro BOM as seen below -[NOTE] -==== -Shiro BOM is a *necessary* step, unless you are using FlowLogix Depchain as described above. -The BOM is needed if you are using Spring / SpringBoot. -==== - -[source,xml] ----- -<dependencyManagement> - <dependencies> - <dependency> - <groupId>org.apache.shiro</groupId> - <artifactId>shiro-bom</artifactId> - <version>${versions.latestRelease}</version> - <scope>import</scope> - <type>pom</type> - </dependency> - </dependencies> -</dependencyManagement> ----- - -[source,xml] ----- -<dependency> - <groupId>org.apache.shiro</groupId> - <artifactId>shiro-jakarta-ee</artifactId> - <classifier>jakarta</classifier> -</dependency> - -<dependency> - <groupId>org.apache.shiro</groupId> - <artifactId>shiro-cdi</artifactId> - <classifier>jakarta</classifier> -</dependency> - -<dependency> - <groupId>org.apache.shiro</groupId> - <artifactId>shiro-core</artifactId> - <classifier>jakarta</classifier> -</dependency> - -<dependency> - <groupId>org.apache.shiro</groupId> - <artifactId>shiro-web</artifactId> - <classifier>jakarta</classifier> -</dependency> - -<dependency> - <groupId>org.omnifaces</groupId> - <artifactId>omnifaces</artifactId> - <!-- replace LATEST with a version number --> - <version>LATEST</version> -</dependency> ----- - == Configuration No additional configuration is required to use Shiro Jakarta EE module. The module is bootstrapped automatically. + Only `shiro.ini` is needed and can be configured as described in link:web.html#web_ini[Web Configuration] + diff --git a/src/site/data/artifacts.yaml b/src/site/data/artifacts.yaml index a570d9889..2b4f1654b 100644 --- a/src/site/data/artifacts.yaml +++ b/src/site/data/artifacts.yaml @@ -57,6 +57,12 @@ artifacts: Shiro-CAS support is deprecated, support has been moved to the Apache Shiro based <a href='https://github.com/bujiio/buji-pac4j'>buji-pac4j</a> project. + shiroCache: + "g": "org.apache.shiro" + "a": "shiro-cache" + "type": "jar" + "description": 'Enables <a class="external-link" href="https://jcp.org/en/jsr/detail?id=107">Java Cache</a>-based framework caching.' + shiroEhCache: "g": "org.apache.shiro" "a": "shiro-ehcache" diff --git a/src/site/data/releases.yaml b/src/site/data/releases.yaml index 279a7f854..36e67e7f3 100644 --- a/src/site/data/releases.yaml +++ b/src/site/data/releases.yaml @@ -1,9 +1,11 @@ --- # for each release, update this variable with the latest version. -latestRelease: "2.2.1" +latestRelease: "3.0.0" # also add or replace the latest version here. versionInfo: + '3.0.0': + releaseDate: 2026-06-29 '2.2.1': releaseDate: 2026-06-17 '2.2.0': @@ -387,3 +389,25 @@ releases: - shiroHasher hashes: - sha512 + + shiro30x: + version: 3.0.0 + artifacts: + - shiroCore + - shiroWeb + - shiroServletPlugin + - shiroCDI + - shiroJakartaEE + - shiroJaxrs + - shiroAspectJ + - shiroCas + - shiroCache + - shiroFeatures + - shiroGuice + - shiroQuartz + - shiroSpring + - shiroSpringBoot + - shiroSpringBootWeb + - shiroHasher + hashes: + - sha512 diff --git a/src/site/templates/download.ftl b/src/site/templates/download.ftl index 543a48227..ab220249c 100644 --- a/src/site/templates/download.ftl +++ b/src/site/templates/download.ftl @@ -15,13 +15,13 @@ <#assign displayReleases=((content.releases).versions)![] /> <#assign downloadUrl="https://www.apache.org/dyn/closer.lua/shiro/" /> <#assign appendToGpg=".txt" /> - <#assign buildRequirements="The source bundle requires JDK 11+ and Maven 3.8+ to build:"/> + <#assign buildRequirements="The source bundle requires JDK 25+ and Maven 3.9+ to build:"/> <#else> <#-- if not releases are given using :jbake-release:, assume oldReleases (release-archive.html). --> <#assign displayReleases=versions.oldReleases /> <#assign downloadUrl="https://archive.apache.org/dist/shiro/" /> <#assign appendToGpg="" /> - <#assign buildRequirements="The source bundle requires JDK 1.8 and Maven 3.0.3+ to build:"/> + <#assign buildRequirements="The source bundle requires JDK 11 and Maven 3.8+ to build:"/> </#if> <#assign downloadHashUrl="https://downloads.apache.org/shiro/" /> diff --git a/src/site/templates/macros/versions.ftl b/src/site/templates/macros/versions.ftl index fdf46e01c..2f420ce8d 100644 --- a/src/site/templates/macros/versions.ftl +++ b/src/site/templates/macros/versions.ftl @@ -18,6 +18,7 @@ <div class="title">Shiro v1 version notice</div> <div class="paragraph"> <p>As of February 28, 2024, Shiro v1 was superseded by v2.<p> + <p>As of June 29, 2026, Shiro v2 was superseded by v3.<p> <#if (sourcepage)?? && (sourcepage)?is_string && (sourcepage) != "" && hasv2 == true> <p> <a href="./v2/${sourcepage}">Read this page in the v2 documentation</a>.
