This is an automated email from the ASF dual-hosted git repository.
lprimak pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/shiro-site.git
The following commit(s) were added to refs/heads/asf-staging by this push:
new 84ade7ad3 update
84ade7ad3 is described below
commit 84ade7ad33a73ff2470f91146263dfaa8d0764c4
Author: lprimak <[email protected]>
AuthorDate: Mon Feb 9 16:57:46 2026 -0600
update
---
10/index.html | 8 +-
11/index.html | 4 +
2/index.html | 8 +-
3/index.html | 8 +-
4/index.html | 8 +-
5/index.html | 8 +-
6/index.html | 8 +-
7/index.html | 8 +-
8/index.html | 8 +-
9/index.html | 8 +-
authenticator.html | 234 ++++++++++++++++--
authorizer.html | 264 +++++++++++++++++++--
.../2026/02/apache-shiro-210-released.html | 171 ++++++-------
cas.html | 12 +-
community.html | 12 +-
documentation.html | 4 +-
download.html | 136 +++++------
feed.xml | 173 ++++++--------
forums.html | 32 +--
index.html | 8 +-
issues.html | 7 +-
news.html | 7 +-
release-archive.html | 50 ++--
security-reports.html | 43 ++++
sitemap.xml | 82 ++++---
spring-boot.html | 24 +-
26 files changed, 874 insertions(+), 461 deletions(-)
diff --git a/10/index.html b/10/index.html
index 4d5cd2f9e..d5cdc784e 100644
--- a/10/index.html
+++ b/10/index.html
@@ -307,6 +307,10 @@
</div>
<div class="card-body">
+ <div>
+ <a
href="../blog/2011/01/13/apache-shiro-support-for-mule.html"><h4
class="news-title">Apache Shiro support for mule</h4></a>
+ <p><small>by Alex Salazar on 2011-01-13</small></p>
+ </div>
<div>
<a
href="../blog/2011/01/06/apache-shiro-video-and-slide-from-sf-jug-presentation.html"><h4
class="news-title">Apache Shiro video and slide from SF JUG
(Presentation)</h4></a>
<p><small>by Alex Salazar on 2011-01-06</small></p>
@@ -323,10 +327,6 @@
<a
href="../blog/2010/09/20/san-francisco-jug-presentation.html"><h4
class="news-title">San Francisco JUG presentation</h4></a>
<p><small>by Les Hazlewood on 2010-09-20</small></p>
</div>
- <div>
- <a
href="../blog/2010/09/14/ibm-developerworks-introduction-to-apache-shiro.html"><h4
class="news-title">IBM DeveloperWorks - Introduction to Apache Shiro</h4></a>
- <p><small>by Les Hazlewood on 2010-09-14</small></p>
- </div>
<hr/>
<nav class="" aria-label="News Pagination">
diff --git a/11/index.html b/11/index.html
index 1c890ce11..b59ec405b 100644
--- a/11/index.html
+++ b/11/index.html
@@ -307,6 +307,10 @@
</div>
<div class="card-body">
+ <div>
+ <a
href="../blog/2010/09/14/ibm-developerworks-introduction-to-apache-shiro.html"><h4
class="news-title">IBM DeveloperWorks - Introduction to Apache Shiro</h4></a>
+ <p><small>by Les Hazlewood on 2010-09-14</small></p>
+ </div>
<div>
<a
href="../blog/2010/06/01/sdforum-java-sig-apache-shiro-presentation.html"><h4
class="news-title">SDForum Java SIG Apache Shiro Presentation</h4></a>
<p><small>by Les Hazlewood on 2010-06-01</small></p>
diff --git a/2/index.html b/2/index.html
index 458fe4c73..50e3fb83c 100644
--- a/2/index.html
+++ b/2/index.html
@@ -307,6 +307,10 @@
</div>
<div class="card-body">
+ <div>
+ <a href="../blog/2024/11/apache-shiro-202-released.html"><h4
class="news-title">2.0.2 available</h4></a>
+ <p><small>by Lenny Primak on 2024-11-13</small></p>
+ </div>
<div>
<a href="../blog/2024/05/apache-shiro-201-released.html"><h4
class="news-title">2.0.1 available</h4></a>
<p><small>by Lenny Primak on 2024-05-30</small></p>
@@ -323,10 +327,6 @@
<a href="../blog/2023/07/18/apache-shiro-1120-released.html"><h4
class="news-title">1.12.0 available with fix CVE-2023-34478</h4></a>
<p><small>by Francois Papon on 2023-07-18</small></p>
</div>
- <div>
- <a
href="../blog/2023/05/04/apache-shiro-200-alpha-1-released.html"><h4
class="news-title">2.0.0-alpha available</h4></a>
- <p><small>by Lenny Primak on 2023-05-04</small></p>
- </div>
<hr/>
<nav class="" aria-label="News Pagination">
diff --git a/3/index.html b/3/index.html
index dc4758c5a..ea8c30385 100644
--- a/3/index.html
+++ b/3/index.html
@@ -307,6 +307,10 @@
</div>
<div class="card-body">
+ <div>
+ <a
href="../blog/2023/05/04/apache-shiro-200-alpha-1-released.html"><h4
class="news-title">2.0.0-alpha available</h4></a>
+ <p><small>by Lenny Primak on 2023-05-04</small></p>
+ </div>
<div>
<a href="../blog/2023/01/13/apache-shiro-1110-released.html"><h4
class="news-title">1.11.0 available with fix CVE-2023-22602</h4></a>
<p><small>by Brian Demers on 2023-01-13</small></p>
@@ -323,10 +327,6 @@
<a href="../blog/2022/06/30/jakarta-work.html"><h4
class="news-title">Ongoing work on the Jakarta namespace transition</h4></a>
<p><small>by Richard Zowalla on 2022-06-30</small></p>
</div>
- <div>
- <a href="../blog/2022/06/28/apache-shiro-191-released.html"><h4
class="news-title">1.9.1 available with fix CVE-2022-32532</h4></a>
- <p><small>by Brian Demers on 2022-06-28</small></p>
- </div>
<hr/>
<nav class="" aria-label="News Pagination">
diff --git a/4/index.html b/4/index.html
index 987ba4503..2d88faf4a 100644
--- a/4/index.html
+++ b/4/index.html
@@ -307,6 +307,10 @@
</div>
<div class="card-body">
+ <div>
+ <a href="../blog/2022/06/28/apache-shiro-191-released.html"><h4
class="news-title">1.9.1 available with fix CVE-2022-32532</h4></a>
+ <p><small>by Brian Demers on 2022-06-28</small></p>
+ </div>
<div>
<a href="../blog/2022/03/22/apache-shiro-190-released.html"><h4
class="news-title">Apache Shiro 1.9.0 Released</h4></a>
<p><small>by Benjamin Marwell on 2022-03-22</small></p>
@@ -323,10 +327,6 @@
<a href="../blog/2021/v1.7.1.html"><h4 class="news-title">1.7.1
available with fix CVE-2020-17523</h4></a>
<p><small>by Brian Demers on 2021-01-31</small></p>
</div>
- <div>
- <a href="../blog/2020/v1.7.0.html"><h4 class="news-title">1.7.0
available with fix CVE-2020-17510</h4></a>
- <p><small>by François Papon on 2020-10-29</small></p>
- </div>
<hr/>
<nav class="" aria-label="News Pagination">
diff --git a/5/index.html b/5/index.html
index 4b8e3bee9..7c1670e38 100644
--- a/5/index.html
+++ b/5/index.html
@@ -307,6 +307,10 @@
</div>
<div class="card-body">
+ <div>
+ <a href="../blog/2020/v1.7.0.html"><h4 class="news-title">1.7.0
available with fix CVE-2020-17510</h4></a>
+ <p><small>by François Papon on 2020-10-29</small></p>
+ </div>
<div>
<a href="../blog/2020/v1.6.0.html"><h4 class="news-title">Apache
Shiro 1.6.0 available</h4></a>
<p><small>by François Papon on 2020-08-17</small></p>
@@ -323,10 +327,6 @@
<a href="../blog/2020/03/25/apache-shiro-152-released.html"><h4
class="news-title">Apache Shiro 1.5.2 Released</h4></a>
<p><small>by The Apache Shiro Team on 2020-03-25</small></p>
</div>
- <div>
- <a href="../blog/2020/02/23/apache-shiro-151-released.html"><h4
class="news-title">Apache Shiro 1.5.1 Released</h4></a>
- <p><small>by The Apache Shiro Team on 2020-02-23</small></p>
- </div>
<hr/>
<nav class="" aria-label="News Pagination">
diff --git a/6/index.html b/6/index.html
index 2fec7512c..ad8dd560f 100644
--- a/6/index.html
+++ b/6/index.html
@@ -307,6 +307,10 @@
</div>
<div class="card-body">
+ <div>
+ <a href="../blog/2020/02/23/apache-shiro-151-released.html"><h4
class="news-title">Apache Shiro 1.5.1 Released</h4></a>
+ <p><small>by The Apache Shiro Team on 2020-02-23</small></p>
+ </div>
<div>
<a href="../blog/2020/01/25/apache-shiro-150-released.html"><h4
class="news-title">Apache Shiro 1.5.0 Released</h4></a>
<p><small>by The Apache Shiro Team on 2020-01-25</small></p>
@@ -323,10 +327,6 @@
<a href="../blog/2016/11/14/apache-shiro-140rc2-released.html"><h4
class="news-title">Apache Shiro 1.4.0-RC2 Released</h4></a>
<p><small>by Brian Demers on 2016-11-14</small></p>
</div>
- <div>
- <a href="../blog/2016/09/09/apache-shiro-132-released.html"><h4
class="news-title">Apache Shiro 1.3.2 Released</h4></a>
- <p><small>by Brian Demers on 2016-09-09</small></p>
- </div>
<hr/>
<nav class="" aria-label="News Pagination">
diff --git a/7/index.html b/7/index.html
index 6e6567fc2..b6cd2aa44 100644
--- a/7/index.html
+++ b/7/index.html
@@ -307,6 +307,10 @@
</div>
<div class="card-body">
+ <div>
+ <a href="../blog/2016/09/09/apache-shiro-132-released.html"><h4
class="news-title">Apache Shiro 1.3.2 Released</h4></a>
+ <p><small>by Brian Demers on 2016-09-09</small></p>
+ </div>
<div>
<a href="../blog/2016/08/29/apache-shiro-131-released.html"><h4
class="news-title">Apache Shiro 1.3.1 Released</h4></a>
<p><small>by Brian Demers on 2016-08-29</small></p>
@@ -323,10 +327,6 @@
<a href="../blog/2016/05/26/apache-shiro-125-released.html"><h4
class="news-title">Apache Shiro 1.2.4 Released</h4></a>
<p><small>by Brian Demers on 2016-05-26</small></p>
</div>
- <div>
- <a href="../blog/2015/08/03/apache-shiro-124-released.html"><h4
class="news-title">Apache Shiro 1.2.4 Released</h4></a>
- <p><small>by Kalle Korhonen on 2015-08-03</small></p>
- </div>
<hr/>
<nav class="" aria-label="News Pagination">
diff --git a/8/index.html b/8/index.html
index 165dcf995..69a29464f 100644
--- a/8/index.html
+++ b/8/index.html
@@ -307,6 +307,10 @@
</div>
<div class="card-body">
+ <div>
+ <a href="../blog/2015/08/03/apache-shiro-124-released.html"><h4
class="news-title">Apache Shiro 1.2.4 Released</h4></a>
+ <p><small>by Kalle Korhonen on 2015-08-03</small></p>
+ </div>
<div>
<a href="../blog/2013/05/30/apache-shiro-122-released.html"><h4
class="news-title">Apache Shiro 1.2.2 Released</h4></a>
<p><small>by The Apache Shiro Team on 2013-05-30</small></p>
@@ -323,10 +327,6 @@
<a href="../blog/2012/01/24/apache-shiro-120-released.html"><h4
class="news-title">Apache Shiro 1.2.0 Released!</h4></a>
<p><small>by Lez Hazelwood on 2012-01-24</small></p>
</div>
- <div>
- <a href="../blog/2011/06/30/apache-shiro-login-demo.html"><h4
class="news-title">Apache Shiro Login Demo</h4></a>
- <p><small>by Les Hazlewood on 2011-06-30</small></p>
- </div>
<hr/>
<nav class="" aria-label="News Pagination">
diff --git a/9/index.html b/9/index.html
index 02f8b6c8c..0687cefae 100644
--- a/9/index.html
+++ b/9/index.html
@@ -307,6 +307,10 @@
</div>
<div class="card-body">
+ <div>
+ <a href="../blog/2011/06/30/apache-shiro-login-demo.html"><h4
class="news-title">Apache Shiro Login Demo</h4></a>
+ <p><small>by Les Hazlewood on 2011-06-30</small></p>
+ </div>
<div>
<a
href="../blog/2011/05/24/the-new-rbac-resource-based-access-control.html"><h4
class="news-title">The new role-based vs resource-based access control</h4></a>
<p><small>by Les Hazlewood on 2011-05-24</small></p>
@@ -323,10 +327,6 @@
<a
href="../blog/2011/02/10/apache-shiro-integration-for-grails-113-released.html"><h4
class="news-title">Apache Shiro integration for Grails 1.1.3 released</h4></a>
<p><small>by Alex Salazar on 2011-02-10</small></p>
</div>
- <div>
- <a
href="../blog/2011/01/13/apache-shiro-support-for-mule.html"><h4
class="news-title">Apache Shiro support for mule</h4></a>
- <p><small>by Alex Salazar on 2011-01-13</small></p>
- </div>
<hr/>
<nav class="" aria-label="News Pagination">
diff --git a/authenticator.html b/authenticator.html
index a59591642..324efc10f 100644
--- a/authenticator.html
+++ b/authenticator.html
@@ -18,20 +18,26 @@
<html lang="en">
<head>
<meta charset="utf-8"/>
- <title>Authenticator | Apache Shiro</title>
+ <title>Apache Shiro Authenticators | Apache Shiro</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="keywords" content='documentation,todo,lend-a-hand'>
+ <meta name="description" content="Understanding Apache Shiro
Authenticators - the component responsible for verifying user identity. Learn
how Authenticators work with Realms and AuthenticationStrategies.">
+ <meta property="og:description" content="Understanding Apache Shiro
Authenticators - the component responsible for verifying user identity. Learn
how Authenticators work with Realms and AuthenticationStrategies.">
+ <meta name="keywords"
content='authenticator,authentication,security,realms'>
<meta name="generator" content="JBake">
<meta name="google-site-verification"
content="QIax6uT5UX3enoU0G8Pz2pXbQ45KaQuHZ3nCh9V27mw">
<meta name="google-site-verification"
content="ecFap6dWJgS_GCCtxmJQJ_nFYQhM6EgSpBPZDU7xsCE">
<meta name="google-site-verification"
content="gBTYOG8lMfNb_jrWrH3kFbudpEs_WrAJ2lb2-zLRaso"/>
<meta name="msvalidate.01" content="0B57EB46CBFAD8FD45008D2DB6B6C68C">
- <meta property="og:title" content="Authenticator | Apache Shiro"/>
- <meta property="og:type" content="website"/>
- <meta property="article:tag" content='documentation'/>
- <meta property="article:tag" content='todo'/>
- <meta property="article:tag" content='lend-a-hand'/>
+ <meta property="og:title" content="Apache Shiro Authenticators | Apache
Shiro"/>
+ <meta property="og:type" content="article"/>
+ <meta name="twitter:card" content="summary" />
+ <meta name="twitter:site" content="@ApacheShiro" />
+ <meta property="article:modification_time" content="2010-03-18T00:00:00Z"/>
+ <meta property="article:tag" content='authenticator'/>
+ <meta property="article:tag" content='authentication'/>
+ <meta property="article:tag" content='security'/>
+ <meta property="article:tag" content='realms'/>
<meta property="og:locale" content="en_US" />
<meta property="og:url"
content='https://shiro.apache.org/authenticator.html'/>
<meta property="og:image" content='images/shiro-featured-image.png'/>
@@ -196,26 +202,208 @@
</div>
</nav>
- <div class="page-header">
- <h1>Authenticator</h1>
+ <div class="page-header">
+ <h1>Apache Shiro Authenticators</h1>
+ </div>
+
+
+ <div class="admonitionblock tip">
+ <table>
+ <tbody>
+ <tr>
+ <td class="icon">
+ <div class="title">Handy Hint</div>
+ </td>
+ <td class="content">
+ <div class="title">Shiro v1 version notice</div>
+ <div class="paragraph">
+ <p>As of February 28, 2024, Shiro v1 was superseded by v2.<p>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
</div>
+<div id="toc" class="toc">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#Authenticator-Role">Role in the SecurityManager</a></li>
+<li><a
href="#Authenticator-ModularRealmAuthenticator">ModularRealmAuthenticator</a></li>
+<li><a href="#Authenticator-SingleVsMultipleRealms">Single vs. Multiple
Realms</a></li>
+<li><a
href="#Authenticator-AuthenticationStrategy">AuthenticationStrategy</a></li>
+<li><a href="#Authenticator-Configuration">Configuration</a></li>
+<li><a href="#Authenticator-RealmInteraction">How Authenticators Work with
Realms</a></li>
+</ul>
+</div>
+<div id="preamble">
+<div class="sectionbody">
<div class="paragraph">
-<p>TODO</p>
+<p>An <code>Authenticator</code> is a component responsible for verifying that
a user actually is who they claim to be.
+It is the core component that executes the authentication process on behalf of
the <a href="/subject.html">Subject</a>.</p>
</div>
-<hr />
-
-<h2><a id="Lendahandwithdocumentation"></a>Lend a hand with documentation</h2>
-
-<p>While we hope this documentation helps you with the work you're doing with
Apache Shiro,
- the community is improving and expanding the documentation all the time.
- If you'd like to help the Shiro project, please consider correcting,
expanding, or adding documentation where you see a need.
- Every little bit of help you provide expands the community and in turn
improves Shiro. </p>
-
-<p>The easiest way to contribute your documentation is to submit a
pull-request by clicking on the <code>Edit</code> link below,
- or send it to the <a href="mailing-lists.html" title="Mailing Lists">User
Mailing List</a>.</p>
-
-<hr />
+<div class="paragraph">
+<p>While the <a href="/authentication.html">Authentication</a> documentation
explains the concepts and workflow of authentication in Shiro,
+the Authenticator represents the actual implementation component that performs
identity verification.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="Authenticator-Role">Role in the SecurityManager</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <a href="/securitymanager.html">SecurityManager</a> does not perform
authentication directly.
+Instead, it delegates authentication requests to its internal
<code>Authenticator</code> instance.
+When a <a href="/subject.html">Subject</a> calls <a
href="/static/current/apidocs/org/apache/shiro/subject/Subject.html#login(org.apache.shiro.authc.AuthenticationToken)"><code>login(token)</code></a>,
+the SecurityManager receives the request and immediately delegates to the
Authenticator by calling
+<a
href="/static/current/apidocs/org/apache/shiro/authc/Authenticator.html#authenticate(org.apache.shiro.authc.AuthenticationToken)"><code>authenticate(token)</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>The Authenticator takes the submitted <a
href="/static/current/apidocs/org/apache/shiro/authc/AuthenticationToken.html"><code>AuthenticationToken</code></a>
+and uses it to verify the Subject’s identity.
+If verification succeeds, it returns an <a
href="/static/current/apidocs/org/apache/shiro/authc/AuthenticationInfo.html"><code>AuthenticationInfo</code></a>
object.
+If verification fails, it throws an <a
href="/static/current/apidocs/org/apache/shiro/authc/AuthenticationException.html"><code>AuthenticationException</code></a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="Authenticator-ModularRealmAuthenticator">ModularRealmAuthenticator</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Shiro uses the <a
href="/static/current/apidocs/org/apache/shiro/authc/pam/ModularRealmAuthenticator.html"><code>ModularRealmAuthenticator</code></a>
+by default.
+This implementation supports coordinating one or more <a
href="/realm.html">Realms</a> during the authentication process.</p>
+</div>
+<div class="paragraph">
+<p>When an authentication token is submitted, the
ModularRealmAuthenticator:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Iterates through configured Realms</p>
+</li>
+<li>
+<p>Calls each Realm’s <a
href="/static/current/apidocs/org/apache/shiro/realm/Realm.html#supports(org.apache.shiro.authc.AuthenticationToken)"><code>supports(token)</code></a>
method to determine if the Realm can process the token</p>
+</li>
+<li>
+<p>If a Realm supports the token, its <a
href="/static/current/apidocs/org/apache/shiro/realm/Realm.html#getAuthenticationInfo(org.apache.shiro.authc.AuthenticationToken)"><code>getAuthenticationInfo(token)</code></a>
method is invoked</p>
+</li>
+<li>
+<p>Returns authentication information if successful, or throws an exception if
failed</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="Authenticator-SingleVsMultipleRealms">Single vs. Multiple Realms</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The ModularRealmAuthenticator supports both configurations:</p>
+</div>
+<div class="paragraph">
+<p><strong>Single Realm</strong>:
+When only one Realm is configured, the Authenticator directly invokes that
Realm to verify the Subject’s credentials.</p>
+</div>
+<div class="paragraph">
+<p><strong>Multiple Realms</strong>:
+When multiple Realms are configured, the Authenticator uses an <a
href="/static/current/apidocs/org/apache/shiro/authc/pam/AuthenticationStrategy.html"><code>AuthenticationStrategy</code></a>
+to determine how to coordinate authentication across the Realms.
+This is a <a
href="https://en.wikipedia.org/wiki/Pluggable_Authentication_Modules">PAM</a>-style
approach where each Realm can be consulted in sequence.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="Authenticator-AuthenticationStrategy">AuthenticationStrategy</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>When multiple Realms are configured, the Authenticator must determine if
the overall authentication attempt succeeds or fails.
+The <a
href="/static/current/apidocs/org/apache/shiro/authc/pam/AuthenticationStrategy.html"><code>AuthenticationStrategy</code></a>
makes this determination.</p>
+</div>
+<div class="paragraph">
+<p>Shiro provides three built-in strategies:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><strong>FirstSuccessfulStrategy</strong>: Consults Realms in order until
one succeeds. Remaining Realms are not consulted.</p>
+</li>
+<li>
+<p><strong>AtLeastOneSuccessfulStrategy</strong>: Returns success if at least
one Realm succeeds. Other Realms continue to be consulted.</p>
+</li>
+<li>
+<p><strong>AllSuccessfulStrategy</strong>: All Realms must succeed for
authentication to succeed. This is the most restrictive.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>You can configure which strategy the Authenticator uses, or implement your
own strategy for custom behavior.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="Authenticator-Configuration">Configuration</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>You can configure a custom Authenticator in your Shiro configuration if
needed:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-ini hljs"
data-lang="ini">authenticator = com.foo.bar.CustomAuthenticator
+securityManager.authenticator = $authenticator</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>You can also configure the AuthenticationStrategy:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-ini hljs"
data-lang="ini">authenticationStrategy =
org.apache.shiro.authc.pam.FirstSuccessfulStrategy
+authenticator.authenticationStrategy = $authenticationStrategy</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>However, in most cases, the default ModularRealmAuthenticator with the
default strategy is sufficient for typical applications.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="Authenticator-RealmInteraction">How Authenticators Work with
Realms</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The Authenticator does not directly know how to verify credentials.
+Instead, it coordinates with configured Realms to perform the actual
verification.</p>
+</div>
+<div class="paragraph">
+<p>A <a href="/realm.html">Realm</a> is a security-specific data access object
that can locate and validate user credentials from a data source
+(database, LDAP, file system, etc.).
+The Realm is responsible for:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Determining if it understands the submitted AuthenticationToken via its
<code>supports(token)</code> method</p>
+</li>
+<li>
+<p>Looking up the user in the data source</p>
+</li>
+<li>
+<p>Comparing submitted credentials with those stored in the data source</p>
+</li>
+<li>
+<p>Returning the user’s authentication information if credentials
match</p>
+</li>
+<li>
+<p>Throwing an exception if credentials do not match</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>The Authenticator simply orchestrates this process by delegating to Realms
in order and handling the results according to its configured strategy.</p>
+</div>
+</div>
+</div>
+ <hr />
</div>
diff --git a/authorizer.html b/authorizer.html
index bb137290e..2be009b68 100644
--- a/authorizer.html
+++ b/authorizer.html
@@ -18,20 +18,27 @@
<html lang="en">
<head>
<meta charset="utf-8"/>
- <title>Authorizer | Apache Shiro</title>
+ <title>Apache Shiro Authorizers | Apache Shiro</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="keywords" content='documentation,todo,lend-a-hand'>
+ <meta name="description" content="Understanding Apache Shiro Authorizers -
the component that determines what authenticated users are allowed to do. Learn
how Authorizers work with Realms to evaluate permissions and roles.">
+ <meta property="og:description" content="Understanding Apache Shiro
Authorizers - the component that determines what authenticated users are
allowed to do. Learn how Authorizers work with Realms to evaluate permissions
and roles.">
+ <meta name="keywords"
content='authorizer,authorization,access-control,permissions,roles'>
<meta name="generator" content="JBake">
<meta name="google-site-verification"
content="QIax6uT5UX3enoU0G8Pz2pXbQ45KaQuHZ3nCh9V27mw">
<meta name="google-site-verification"
content="ecFap6dWJgS_GCCtxmJQJ_nFYQhM6EgSpBPZDU7xsCE">
<meta name="google-site-verification"
content="gBTYOG8lMfNb_jrWrH3kFbudpEs_WrAJ2lb2-zLRaso"/>
<meta name="msvalidate.01" content="0B57EB46CBFAD8FD45008D2DB6B6C68C">
- <meta property="og:title" content="Authorizer | Apache Shiro"/>
- <meta property="og:type" content="website"/>
- <meta property="article:tag" content='documentation'/>
- <meta property="article:tag" content='todo'/>
- <meta property="article:tag" content='lend-a-hand'/>
+ <meta property="og:title" content="Apache Shiro Authorizers | Apache
Shiro"/>
+ <meta property="og:type" content="article"/>
+ <meta name="twitter:card" content="summary" />
+ <meta name="twitter:site" content="@ApacheShiro" />
+ <meta property="article:modification_time" content="2010-03-18T00:00:00Z"/>
+ <meta property="article:tag" content='authorizer'/>
+ <meta property="article:tag" content='authorization'/>
+ <meta property="article:tag" content='access-control'/>
+ <meta property="article:tag" content='permissions'/>
+ <meta property="article:tag" content='roles'/>
<meta property="og:locale" content="en_US" />
<meta property="og:url"
content='https://shiro.apache.org/authorizer.html'/>
<meta property="og:image" content='images/shiro-featured-image.png'/>
@@ -196,26 +203,241 @@
</div>
</nav>
- <div class="page-header">
- <h1>Authorizer</h1>
+ <div class="page-header">
+ <h1>Apache Shiro Authorizers</h1>
+ </div>
+
+
+ <div class="admonitionblock tip">
+ <table>
+ <tbody>
+ <tr>
+ <td class="icon">
+ <div class="title">Handy Hint</div>
+ </td>
+ <td class="content">
+ <div class="title">Shiro v1 version notice</div>
+ <div class="paragraph">
+ <p>As of February 28, 2024, Shiro v1 was superseded by v2.<p>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
</div>
+<div id="toc" class="toc">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#Authorizer-Role">Role in the SecurityManager</a></li>
+<li><a
href="#Authorizer-ModularRealmAuthorizer">ModularRealmAuthorizer</a></li>
+<li><a href="#Authorizer-PermissionAndRoleChecks">Permission and Role
Checks</a>
+<ul class="sectlevel2">
+<li><a href="#Authorizer-PermissionChecks">Permission Checks</a></li>
+<li><a href="#Authorizer-RoleChecks">Role Checks</a></li>
+</ul>
+</li>
+<li><a href="#Authorizer-Configuration">Configuration</a></li>
+<li><a href="#Authorizer-RealmInteraction">How Authorizers Work with
Realms</a></li>
+<li><a href="#Authorizer-MultipleRealms">Authorization with Multiple
Realms</a></li>
+</ul>
+</div>
+<div id="preamble">
+<div class="sectionbody">
<div class="paragraph">
-<p>TODO</p>
+<p>An <code>Authorizer</code> is a component responsible for determining
whether a user is allowed to perform a certain action.
+It evaluates whether a <code>Subject</code> has the necessary permissions or
roles to access a resource or perform an operation.</p>
</div>
-<hr />
-
-<h2><a id="Lendahandwithdocumentation"></a>Lend a hand with documentation</h2>
-
-<p>While we hope this documentation helps you with the work you're doing with
Apache Shiro,
- the community is improving and expanding the documentation all the time.
- If you'd like to help the Shiro project, please consider correcting,
expanding, or adding documentation where you see a need.
- Every little bit of help you provide expands the community and in turn
improves Shiro. </p>
+<div class="paragraph">
+<p>While the <a href="/authorization.html">Authorization</a> documentation
explains the concepts and workflow of access control in Shiro,
+the Authorizer represents the actual implementation component that performs
access control decisions.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="Authorizer-Role">Role in the SecurityManager</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <a href="/securitymanager.html">SecurityManager</a> does not perform
authorization checks directly.
+Instead, it delegates authorization decisions to its internal
<code>Authorizer</code> instance.
+When a <a href="/subject.html">Subject</a> calls authorization methods such as
+<a
href="/static/current/apidocs/org/apache/shiro/subject/Subject.html#hasRole(java.lang.String)"><code>hasRole(role)</code></a>,
+<a
href="/static/current/apidocs/org/apache/shiro/subject/Subject.html#isPermitted(org.apache.shiro.authz.Permission)"><code>isPermitted(permission)</code></a>,
+or their variants, the SecurityManager delegates to the Authorizer.</p>
+</div>
+<div class="paragraph">
+<p>The Authorizer determines whether the Subject is permitted to perform the
requested action by checking the Subject’s roles and permissions.
+If the Subject has the necessary role or permission, the authorization check
passes.
+If not, an <a
href="/static/current/apidocs/org/apache/shiro/authz/AuthorizationException.html"><code>AuthorizationException</code></a>
may be thrown.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="Authorizer-ModularRealmAuthorizer">ModularRealmAuthorizer</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Shiro uses the <a
href="/static/current/apidocs/org/apache/shiro/authz/ModularRealmAuthorizer.html"><code>ModularRealmAuthorizer</code></a>
+by default.
+This implementation supports coordinating one or more <a
href="/realm.html">Realms</a> during the authorization process.</p>
+</div>
+<div class="paragraph">
+<p>When an authorization check is performed, the ModularRealmAuthorizer:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Iterates through configured Realms</p>
+</li>
+<li>
+<p>For each Realm that implements the <code>Authorizer</code> interface, calls
the corresponding authorization method
+(<code>hasRole*</code>, <code>checkRole*</code>, <code>isPermitted*</code>, or
<code>checkPermission*</code>)</p>
+</li>
+<li>
+<p>Aggregates and evaluates the results according to Shiro’s
authorization semantics</p>
+</li>
+<li>
+<p>Returns the authorization decision to the caller</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>It is important to note that the ModularRealmAuthorizer treats Realms
differently depending on whether they implement the <code>Authorizer</code>
interface.
+If a Realm does not implement <code>Authorizer</code>, it is not consulted for
authorization checks.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="Authorizer-PermissionAndRoleChecks">Permission and Role Checks</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The Authorizer performs two types of authorization checks:</p>
+</div>
+<div class="sect2">
+<h3 id="Authorizer-PermissionChecks">Permission Checks</h3>
+<div class="paragraph">
+<p>Permission checks verify whether a Subject is allowed to perform a specific
action on a specific resource.
+Methods for permission checks include:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a
href="/static/current/apidocs/org/apache/shiro/subject/Subject.html#isPermitted(org.apache.shiro.authz.Permission)"><code>isPermitted(permission)</code></a>
- returns <code>true</code> or <code>false</code></p>
+</li>
+<li>
+<p><a
href="/static/current/apidocs/org/apache/shiro/subject/Subject.html#checkPermission(org.apache.shiro.authz.Permission)"><code>checkPermission(permission)</code></a>
- throws an exception on failure</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>For example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-java hljs"
data-lang="java">if (subject.isPermitted("account:read")) {
+ //User can read accounts
+}
-<p>The easiest way to contribute your documentation is to submit a
pull-request by clicking on the <code>Edit</code> link below,
- or send it to the <a href="mailing-lists.html" title="Mailing Lists">User
Mailing List</a>.</p>
+subject.checkPermission("document:delete:report123");</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="Authorizer-RoleChecks">Role Checks</h3>
+<div class="paragraph">
+<p>Role checks verify whether a Subject has a specific role. Methods for role
checks include:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a
href="/static/current/apidocs/org/apache/shiro/subject/Subject.html#hasRole(java.lang.String)"><code>hasRole(role)</code></a>
- returns <code>true</code> or <code>false</code></p>
+</li>
+<li>
+<p><a
href="/static/current/apidocs/org/apache/shiro/subject/Subject.html#checkRole(java.lang.String)"><code>checkRole(role)</code></a>
- throws an exception on failure</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>For example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-java hljs"
data-lang="java">if (subject.hasRole("admin")) {
+ //User is an administrator
+}
-<hr />
+subject.checkRole("user");</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="Authorizer-Configuration">Configuration</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>You can configure a custom Authorizer in your Shiro configuration if
needed:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-ini hljs"
data-lang="ini">authorizer = com.foo.bar.CustomAuthorizer
+securityManager.authorizer = $authorizer</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>However, in most cases, the default ModularRealmAuthorizer is sufficient
for typical applications.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="Authorizer-RealmInteraction">How Authorizers Work with Realms</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The Authorizer does not directly know where to retrieve authorization data.
+Instead, it coordinates with configured Realms to perform the actual
authorization checks.</p>
+</div>
+<div class="paragraph">
+<p>A <a href="/realm.html">Realm</a> is a security-specific data access object
that knows how to retrieve authorization data from a data source
+(database, LDAP, file system, etc.).
+The Realm is responsible for:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Determining if it implements the <code>Authorizer</code> interface (which
indicates it can perform authorization checks)</p>
+</li>
+<li>
+<p>Retrieving the Subject’s roles and permissions from the data
source</p>
+</li>
+<li>
+<p>Evaluating whether the Subject has the requested role or permission</p>
+</li>
+<li>
+<p>Returning the results of the authorization check</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>The Authorizer simply orchestrates this process by delegating to Realms and
aggregating their results.
+This allows you to use multiple Realms where authorization data may come from
different sources,
+and Shiro will coordinate the results appropriately.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="Authorizer-MultipleRealms">Authorization with Multiple Realms</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>When multiple Realms are configured, the ModularRealmAuthorizer consults
all Realms that implement the <code>Authorizer</code> interface.
+The results are aggregated to determine the final authorization decision.</p>
+</div>
+<div class="paragraph">
+<p>Typically, if any Realm grants permission or role membership, the
authorization check succeeds.
+However, the exact behavior depends on the authorization data model and how
the Realms are configured.
+Custom Authorizer implementations can be used to implement different
aggregation strategies if needed.</p>
+</div>
+</div>
+</div>
+ <hr />
</div>
diff --git a/forums.html b/blog/2026/02/apache-shiro-210-released.html
similarity index 62%
copy from forums.html
copy to blog/2026/02/apache-shiro-210-released.html
index 150400190..23623e68f 100644
--- a/forums.html
+++ b/blog/2026/02/apache-shiro-210-released.html
@@ -18,50 +18,49 @@
<html lang="en">
<head>
<meta charset="utf-8"/>
- <title>Apache Shiro Community Forums | Apache Shiro</title>
+ <title>2.1.0 available | Apache Shiro</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="description" content="Access Apache Shiro community forums and
mailing list archives via ASF Pony Mail for user and developer discussions.">
- <meta property="og:description" content="Access Apache Shiro community
forums and mailing list archives via ASF Pony Mail for user and developer
discussions.">
- <meta name="keywords" content='forums,community,support,discussions'>
+ <meta name="author" content="Francois Papon">
+ <meta name="keywords" content='blog,release'>
<meta name="generator" content="JBake">
<meta name="google-site-verification"
content="QIax6uT5UX3enoU0G8Pz2pXbQ45KaQuHZ3nCh9V27mw">
<meta name="google-site-verification"
content="ecFap6dWJgS_GCCtxmJQJ_nFYQhM6EgSpBPZDU7xsCE">
<meta name="google-site-verification"
content="gBTYOG8lMfNb_jrWrH3kFbudpEs_WrAJ2lb2-zLRaso"/>
<meta name="msvalidate.01" content="0B57EB46CBFAD8FD45008D2DB6B6C68C">
- <meta property="og:title" content="Apache Shiro Community Forums | Apache
Shiro"/>
+ <meta property="og:title" content="2.1.0 available | Apache Shiro"/>
+ <meta property="article:published_time" content="2026-02-08T00:00:00Z"/>
+ <meta name="publish_date" property="og:publish_date"
content="2026-02-08T00:00:00Z"/>
<meta property="og:type" content="article"/>
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@ApacheShiro" />
- <meta property="article:modification_time" content="2010-03-18T00:00:00Z"/>
- <meta property="article:tag" content='forums'/>
- <meta property="article:tag" content='community'/>
- <meta property="article:tag" content='support'/>
- <meta property="article:tag" content='discussions'/>
+ <meta property="article:modification_time" content="2026-02-08T00:00:00Z"/>
+ <meta property="article:tag" content='blog'/>
+ <meta property="article:tag" content='release'/>
<meta property="og:locale" content="en_US" />
- <meta property="og:url" content='https://shiro.apache.org/forums.html'/>
- <meta property="og:image" content='images/shiro-featured-image.png'/>
+ <meta property="og:url"
content='https://shiro.apache.org/blog/2026/02/apache-shiro-210-released.html'/>
+ <meta property="og:image"
content='../../../images/shiro-featured-image.png'/>
<meta property="og:image:width" content='1200'/>
<meta property="og:image:height" content='628'/>
<meta property="og:site_name" content="Apache Shiro"/>
<!-- Le styles -->
- <link href="css/bootstrap.min.css" rel="stylesheet">
- <link href="bootstrap-icons-1.13.1/bootstrap-icons.css" rel="stylesheet">
- <link href="css/asciidoctor.css" rel="stylesheet">
- <link href="css/base.css" rel="stylesheet">
- <link href="highlight.js-11.11.1/styles/default.min.css" rel="stylesheet">
- <link href="css/gh-pages/gh-fork-ribbon.css" rel="stylesheet"/>
+ <link href="../../../css/bootstrap.min.css" rel="stylesheet">
+ <link href="../../../bootstrap-icons-1.13.1/bootstrap-icons.css"
rel="stylesheet">
+ <link href="../../../css/asciidoctor.css" rel="stylesheet">
+ <link href="../../../css/base.css" rel="stylesheet">
+ <link href="../../../highlight.js-11.11.1/styles/default.min.css"
rel="stylesheet">
+ <link href="../../../css/gh-pages/gh-fork-ribbon.css" rel="stylesheet"/>
<!-- Theme toggle script (loaded early to prevent flash) -->
- <script src="js/theme.js"></script>
+ <script src="../../../js/theme.js"></script>
<!-- Fav and touch icons -->
<!--<link rel="apple-touch-icon-precomposed" sizes="144x144"
href="../assets/ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114"
href="../assets/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72"
href="../assets/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed"
href="../assets/ico/apple-touch-icon-57-precomposed.png">-->
- <link rel="shortcut icon" href="favicon.ico">
+ <link rel="shortcut icon" href="../../../favicon.ico">
<!-- Matomo -->
<script>
@@ -91,7 +90,7 @@
<div class="masthead">
<p class="lead">
- <a href="index.html"><img src="images/apache-shiro-logo.png"
style="height:100px; width:auto; vertical-align: bottom; margin-top: 20px;"
alt="Apache Shiro Logo"></a>
+ <a href="../../../index.html"><img
src="../../../images/apache-shiro-logo.png" style="height:100px; width:auto;
vertical-align: bottom; margin-top: 20px;" alt="Apache Shiro Logo"></a>
<span class="tagline">Simple. Java. Security.</span>
<a class="pull-right"
href="https://www.apache.org/events/current-event.html">
<img style="padding-top: 8px"
src="https://www.apache.org/events/current-event-125x125.png" alt="Apache
Software Foundation Event Banner"/>
@@ -109,10 +108,10 @@
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
- <a class="nav-link" href="get-started.html">Get Started</a>
+ <a class="nav-link" href="../../../get-started.html">Get
Started</a>
</li>
<li class="nav-item">
- <a class="nav-link" href="documentation.html">Docs</a>
+ <a class="nav-link" href="../../../documentation.html">Docs</a>
</li>
<li class="nav-item dropdown">
@@ -120,16 +119,16 @@
Web Apps
</a>
<ul class="dropdown-menu"
aria-labelledby="navbarDropdown-webapps">
- <li><a class="dropdown-item" href="web.html">General</a></li>
- <li><a class="dropdown-item" href="jaxrs.html">JAX-RS</a></li>
- <li><a class="dropdown-item" href="jakarta-ee.html">Jakarta
EE</a></li>
- <li><a class="dropdown-item"
href="dependency-chain.html">Jakarta EE with Dependency Chains</a></li>
+ <li><a class="dropdown-item"
href="../../../web.html">General</a></li>
+ <li><a class="dropdown-item"
href="../../../jaxrs.html">JAX-RS</a></li>
+ <li><a class="dropdown-item"
href="../../../jakarta-ee.html">Jakarta EE</a></li>
+ <li><a class="dropdown-item"
href="../../../dependency-chain.html">Jakarta EE with Dependency Chains</a></li>
<li><hr class="dropdown-divider"></li>
- <li><a class="dropdown-item"
href="web-features.html">Features</a></li>
+ <li><a class="dropdown-item"
href="../../../web-features.html">Features</a></li>
</ul>
</li>
- <li><a class="nav-link" href="features.html">Features</a></li>
+ <li><a class="nav-link"
href="../../../features.html">Features</a></li>
<!-- integrations -->
<li class="nav-item dropdown">
@@ -137,10 +136,10 @@
Integrations
</a>
<ul class="dropdown-menu"
aria-labelledby="navbarDropdown-integrations">
- <li><a class="dropdown-item"
href="spring-boot.html">Spring</a></li>
- <li><a class="dropdown-item" href="guice.html">Guice</a></li>
+ <li><a class="dropdown-item"
href="../../../spring-boot.html">Spring</a></li>
+ <li><a class="dropdown-item"
href="../../../guice.html">Guice</a></li>
<li><hr class="dropdown-divider"></li>
- <li><a class="dropdown-item"
href="integration.html">Third-Party Integrations</a></li>
+ <li><a class="dropdown-item"
href="../../../integration.html">Third-Party Integrations</a></li>
</ul>
</li>
@@ -150,16 +149,16 @@
Community
</a>
<ul class="dropdown-menu"
aria-labelledby="navbarDropdown-community">
- <li><a class="dropdown-item" href="forums.html">Community
Forums</a></li>
- <li><a class="dropdown-item" href="mailing-lists.html">Mailing
Lists</a></li>
- <li><a class="dropdown-item"
href="articles.html">Articles</a></li>
- <li><a class="dropdown-item" href="news.html">News</a></li>
- <li><a class="dropdown-item" href="events.html">Events</a></li>
- <li><a class="dropdown-item"
href="troubleshooting.html">Troubleshooting & FAQ</a></li>
- <li><a class="dropdown-item" href="support.html">Community
Support</a></li>
+ <li><a class="dropdown-item"
href="../../../forums.html">Community Forums</a></li>
+ <li><a class="dropdown-item"
href="../../../mailing-lists.html">Mailing Lists</a></li>
+ <li><a class="dropdown-item"
href="../../../articles.html">Articles</a></li>
+ <li><a class="dropdown-item"
href="../../../news.html">News</a></li>
+ <li><a class="dropdown-item"
href="../../../events.html">Events</a></li>
+ <li><a class="dropdown-item"
href="../../../troubleshooting.html">Troubleshooting & FAQ</a></li>
+ <li><a class="dropdown-item"
href="../../../support.html">Community Support</a></li>
<li><hr class="dropdown-divider"></li>
- <li><a class="dropdown-item"
href="commercial-support.html">Commercial Support</a></li>
- <li><a class="dropdown-item"
href="community.html">More</a></li>
+ <li><a class="dropdown-item"
href="../../../commercial-support.html">Commercial Support</a></li>
+ <li><a class="dropdown-item"
href="../../../community.html">More</a></li>
</ul>
</li>
@@ -169,10 +168,10 @@
About
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown-about">
- <li><a class="dropdown-item" href="about.html">About</a></li>
- <li><a class="dropdown-item"
href="privacy-policy.html">Privacy Policy</a></li>
- <li><a class="dropdown-item"
href="security-model.html">Security Model</a></li>
- <li><a class="dropdown-item"
href="security-reports.html">Vulnerability Reports</a></li>
+ <li><a class="dropdown-item"
href="../../../about.html">About</a></li>
+ <li><a class="dropdown-item"
href="../../../privacy-policy.html">Privacy Policy</a></li>
+ <li><a class="dropdown-item"
href="../../../security-model.html">Security Model</a></li>
+ <li><a class="dropdown-item"
href="../../../security-reports.html">Vulnerability Reports</a></li>
</ul>
</li>
</ul>
@@ -203,76 +202,78 @@
</nav>
<div class="page-header">
- <h1>Apache Shiro Community Forums</h1>
+ <h1>2.1.0 available</h1>
</div>
- <div class="admonitionblock tip">
- <table>
- <tbody>
- <tr>
- <td class="icon">
- <div class="title">Handy Hint</div>
- </td>
- <td class="content">
- <div class="title">Shiro v1 version notice</div>
- <div class="paragraph">
- <p>As of February 28, 2024, Shiro v1 was superseded by v2.<p>
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
+ <p>
+ <em>Published by Francois Papon on the
+ <time datetime="2026-02-08T00:00:00Z">08th of February,
2026</time>
+ </em>
+ </p>
-<div class="sect1">
-<h2 id="mailing_lists">Mailing Lists</h2>
+ <div id="preamble">
<div class="sectionbody">
<div class="paragraph">
-<p>For those that may prefer mailing lists, please see the <a
href="mailing-lists.html">Mailing Lists</a> information.</p>
+<p>The Apache Shiro team is pleased to announce the release of Apache Shiro
version 2.1.0.</p>
</div>
-<div class="quoteblock">
-<blockquote>
<div class="paragraph">
-<p><strong>NOTE:</strong> The primary forums for Apache Shiro are the mailing
lists, which can be accessed via the <a href="mailing-lists.html">Mailing
Lists</a> page. This is per the Apache Software Foundation’s community
guidelines.</p>
-</div>
-</blockquote>
+<p>This release is available for download now.</p>
</div>
</div>
</div>
<div class="sect1">
-<h2 id="mailing_list_archives">Mailing List Archives</h2>
+<h2 id="release_highlights">Release Highlights</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>For users that prefer to browse the mailing lists with a browser can use <a
href="https://lists.apache.org/">ASF Lists</a> (Pony Mail).</p>
+<p>This is a maintenance release that includes several bug fixes, improvements
and dependency updates. It is recommended for all users to upgrade to this
version.</p>
+</div>
+<div class="paragraph">
+<p>We have new contributors!</p>
</div>
<div class="ulist">
<ul>
<li>
-<p><a href="https://lists.apache.org/[email protected]">Shiro
User Forum</a></p>
+<p><a href="https://github.com/celikfatih">@celikfatih</a></p>
</li>
<li>
-<p><a href="https://lists.apache.org/[email protected]">Shiro
Developer Forum</a></p>
+<p><a href="https://github.com/haster">@haster</a></p>
</li>
</ul>
</div>
-<div class="quoteblock">
-<blockquote>
+</div>
+</div>
+<div class="sect1">
+<h2 id="all_changes">All changes</h2>
+<div class="sectionbody">
<div class="paragraph">
-<p><strong>NOTE:</strong> Previously, <code>nabble.com</code> was used as an
alternative to the mailing list, this service is no longer hosting the mailing
list archive.</p>
+<p>You can learn more on <a
href="https://github.com/apache/shiro/releases/tag/shiro-root-2.1.0">GitHub,
Release 2.1.0</a>.</p>
+</div>
</div>
-</blockquote>
+</div>
+<div class="sect1">
+<h2 id="download">Download</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Download and verification instructions are available <a
href="/download.html">on our download page</a>.</p>
</div>
</div>
</div>
<div class="sect1">
-<h2 id="github_discussions">GitHub Discussions</h2>
+<h2 id="documentation">Documentation</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>For questions, ideas, and general community discussion, please use <a
href="https://github.com/apache/shiro/discussions">GitHub Discussions</a>.</p>
+<p>For more information on <a href="/documentation.html">Shiro, please read
the documentation.</a></p>
</div>
+<div class="paragraph">
+<p>Enjoy!</p>
+</div>
+<div class="paragraph">
+<p>The Apache Shiro Team</p>
</div>
</div>
+</div>
+
<hr />
</div>
@@ -296,7 +297,7 @@
</div>
<div class="d-flex justify-content-end col-md-4" id="editThisPage">
- <input type="hidden" id="ghEditPage"
value="https://github.com/apache/shiro-site/edit/main/src/site/content/forums.adoc"/>
+ <input type="hidden" id="ghEditPage"
value="https://github.com/apache/shiro-site/edit/main/src/site/content/blog/2026/02/apache-shiro-210-released.adoc"/>
</div>
<div class="d-flex col-md-2 justify-content-end" style="position:
relative">
@@ -309,9 +310,9 @@
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
- <script src="js/bootstrap.min.js"></script>
- <script src="highlight.js-11.11.1/highlight.min.js"></script>
- <script src="js/shiro.js"></script>
+ <script src="../../../js/bootstrap.min.js"></script>
+ <script src="../../../highlight.js-11.11.1/highlight.min.js"></script>
+ <script src="../../../js/shiro.js"></script>
<script>
docReady(
diff --git a/cas.html b/cas.html
index 401cc9edf..b2e7843b0 100644
--- a/cas.html
+++ b/cas.html
@@ -398,7 +398,7 @@ Generally, the CAS client forwards the user to the
originally called protected p
<pre><code class='xml language-xml'><dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-cas</artifactId>
- <version>2.0.6</version>
+ <version>2.1.0</version>
</dependency>
</code></pre>
</div>
@@ -408,7 +408,7 @@ Generally, the CAS client forwards the user to the
originally called protected p
role="tabpanel"
aria-labelledby="gradle-casmain-tab"
>
- <pre><code class='groovy language-groovy'>compile
'org.apache.shiro:shiro-cas:2.0.6'
+ <pre><code class='groovy language-groovy'>compile
'org.apache.shiro:shiro-cas:2.1.0'
</code></pre>
</div>
<div
@@ -417,7 +417,7 @@ Generally, the CAS client forwards the user to the
originally called protected p
role="tabpanel"
aria-labelledby="sbt-casmain-tab"
>
- <pre><code class='scala language-scala'>libraryDependencies +=
"org.apache.shiro" % "shiro-cas" % "2.0.6"
+ <pre><code class='scala language-scala'>libraryDependencies +=
"org.apache.shiro" % "shiro-cas" % "2.1.0"
</code></pre>
</div>
<div
@@ -426,7 +426,7 @@ Generally, the CAS client forwards the user to the
originally called protected p
role="tabpanel"
aria-labelledby="ivy-casmain-tab"
>
- <pre><code class='xml language-xml'><dependency org="org.apache.shiro"
name="shiro-cas" rev="2.0.6"/>
+ <pre><code class='xml language-xml'><dependency org="org.apache.shiro"
name="shiro-cas" rev="2.1.0"/>
</code></pre>
</div>
<div
@@ -435,7 +435,7 @@ Generally, the CAS client forwards the user to the
originally called protected p
role="tabpanel"
aria-labelledby="leiningen-casmain-tab"
>
- <pre><code class='clojure language-clojure'>[org.apache.shiro/shiro-cas
"2.0.6"]
+ <pre><code class='clojure language-clojure'>[org.apache.shiro/shiro-cas
"2.1.0"]
</code></pre>
</div>
<div
@@ -444,7 +444,7 @@ Generally, the CAS client forwards the user to the
originally called protected p
role="tabpanel"
aria-labelledby="buildr-casmain-tab"
>
- <pre><code class='groovy
language-groovy'>'org.apache.shiro:shiro-cas:jar:2.0.6'
+ <pre><code class='groovy
language-groovy'>'org.apache.shiro:shiro-cas:jar:2.1.0'
</code></pre>
</div>
</div>
diff --git a/community.html b/community.html
index c033a251c..15a2b6340 100644
--- a/community.html
+++ b/community.html
@@ -20,9 +20,7 @@
<meta charset="utf-8"/>
<title>Welcome to the Apache Shiro Community! | Apache Shiro</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="description" content="Join the Apache Shiro community to get
help, share knowledge, and contribute. Access forums, mailing lists, articles,
and community events.">
- <meta property="og:description" content="Join the Apache Shiro community
to get help, share knowledge, and contribute. Access forums, mailing lists,
articles, and community events.">
- <meta name="keywords" content='community,support,forums,mailing-lists'>
+ <meta name="keywords" content='community'>
<meta name="generator" content="JBake">
<meta name="google-site-verification"
content="QIax6uT5UX3enoU0G8Pz2pXbQ45KaQuHZ3nCh9V27mw">
<meta name="google-site-verification"
content="ecFap6dWJgS_GCCtxmJQJ_nFYQhM6EgSpBPZDU7xsCE">
@@ -35,9 +33,6 @@
<meta name="twitter:site" content="@ApacheShiro" />
<meta property="article:modification_time" content="2010-03-18T00:00:00Z"/>
<meta property="article:tag" content='community'/>
- <meta property="article:tag" content='support'/>
- <meta property="article:tag" content='forums'/>
- <meta property="article:tag" content='mailing-lists'/>
<meta property="og:locale" content="en_US" />
<meta property="og:url" content='https://shiro.apache.org/community.html'/>
<meta property="og:image" content='images/shiro-featured-image.png'/>
@@ -272,10 +267,7 @@
<p><strong><a href="developer-resources.html">Developer Resources</a></strong>
- Helpful information for anyone providing project help as a committer or
contributor</p>
</li>
<li>
-<p><strong><a href="https://github.com/apache/shiro/discussions">GitHub
Discussions</a></strong> - For questions, ideas, and community discussion</p>
-</li>
-<li>
-<p><strong><a href="https://github.com/apache/shiro/issues">GitHub
Issues</a></strong> - For bug reports and feature requests</p>
+<p><strong><a href="https://github.com/apache/shiro/issues">Issue
Tracker</a></strong> - Once you’re ready to contribute, this is a good
place to see what needs to get done</p>
</li>
<li>
<p><strong><a href="https://www.apache.org/foundation/sponsorship.html">Donate
to ASF</a></strong> - Shiro is a project under the Apache Software Foundation,
a non-profit that relies on donations and community support</p>
diff --git a/documentation.html b/documentation.html
index 29530e81e..799a2b284 100644
--- a/documentation.html
+++ b/documentation.html
@@ -293,7 +293,7 @@
<div class="sect2">
<h3 id="current_release">Current Release</h3>
<div class="paragraph">
-<p>Apache Shiro 2.0.6 (<a href="download.html">Download</a>)</p>
+<p>Apache Shiro 2.1.0 (<a href="download.html">Download</a>)</p>
</div>
<div class="ulist">
<ul>
@@ -301,7 +301,7 @@
<p><a href="https://javadoc.io/doc/org.apache.shiro">API</a> (Javadoc - Hosted
on javadoc.io)</p>
</li>
<li>
-<p><a href="https://github.com/apache/shiro/tree/shiro-root-2.0.6/">Browse
Source</a> (GitHub tag)</p>
+<p><a href="https://github.com/apache/shiro/tree/shiro-root-2.1.0/">Browse
Source</a> (GitHub tag)</p>
</li>
<li>
<p><a href="static/latest/">Maven Static Site</a></p>
diff --git a/download.html b/download.html
index 4191967c8..c43fa051f 100644
--- a/download.html
+++ b/download.html
@@ -207,7 +207,7 @@
<p><div id="preamble">
<div class="sectionbody">
<div class="paragraph">
-<p>Apache Shiro 2.0.6 is the current stable release (Java 11+).</p>
+<p>Apache Shiro 2.1.0 is the current stable release (Java 11+).</p>
</div>
<div class="paragraph">
<p>To download Shiro please follow the instructions below.</p>
@@ -226,7 +226,7 @@
<h2 id="current_release">Current Release</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>The current release is 2.0.6.
+<p>The current release is 2.1.0.
For older releases, please visit our <a href="release-archive.html">release
archive</a>.</p>
</div>
</div>
@@ -236,41 +236,41 @@ For older releases, please visit our <a
href="release-archive.html">release arch
<p>
<ul>
- <li><a href="#206">Apache Shiro Release v2.0.6</a></li>
+ <li><a href="#210">Apache Shiro Release v2.1.0</a></li>
<ul>
- <li><a href="#206Source">2.0.6 Source Code Distribution</a></li>
- <li><a href="#206Git">2.0.6 Git Source repository</a></li>
- <li><a href="#206Binary">2.0.6 Binaries</a></li>
+ <li><a href="#210Source">2.1.0 Source Code Distribution</a></li>
+ <li><a href="#210Git">2.1.0 Git Source repository</a></li>
+ <li><a href="#210Binary">2.1.0 Binaries</a></li>
</ul>
</ul>
</p>
- <section id="206">
- <h2>Release 2.0.6</h2>
+ <section id="210">
+ <h2>Release 2.1.0</h2>
- <h3 id="206Source">2.0.6 Source Code Distribution</h3>
+ <h3 id="210Source">2.1.0 Source Code Distribution</h3>
<p>The source bundle requires JDK 11+ and Maven 3.8+ to build:
- <code><a class="external-link"
href="https://www.apache.org/dyn/closer.lua/shiro/2.0.6/shiro-root-2.0.6-source-release.zip">shiro-root-2.0.6-source-release.zip</a></code>
+ <code><a class="external-link"
href="https://www.apache.org/dyn/closer.lua/shiro/2.1.0/shiro-root-2.1.0-source-release.zip">shiro-root-2.1.0-source-release.zip</a></code>
(<a class="external-link"
-
href="https://downloads.apache.org/shiro/2.0.6/shiro-root-2.0.6-source-release.zip.asc.txt">pgp</a>,
<a
+
href="https://downloads.apache.org/shiro/2.1.0/shiro-root-2.1.0-source-release.zip.asc.txt">pgp</a>,
<a
class="external-link"
-
href="https://downloads.apache.org/shiro/2.0.6/shiro-root-2.0.6-source-release.zip.sha512">sha512</a>)
+
href="https://downloads.apache.org/shiro/2.1.0/shiro-root-2.1.0-source-release.zip.sha512">sha512</a>)
</code>
<p>Associated documentation can be found <a href="documentation.html"
title="Documentation">here</a></p>
- <h3 id="206Git">2.0.6 Git Source repository</h3>
+ <h3 id="210Git">2.1.0 Git Source repository</h3>
<p>The source can be cloned anonymously from Git with this command:</p>
<pre><code class="language-bash bash">git clone
https://github.com/apache/shiro.git
-git checkout shiro-root-2.0.6
+git checkout shiro-root-2.1.0
</code>
</pre>
- <h3 id="206Binary">2.0.6 Binaries</h3>
+ <h3 id="210Binary">2.1.0 Binaries</h3>
<p>If you don't want to build yourself, you can download pre-built binaries
from Maven Central, just click the link in the "Artifact" column. If you would
like
acquire Shiro through Maven, then please use the markup listed under
"Maven Usage"</p>
@@ -291,15 +291,15 @@ git checkout shiro-root-2.0.6
<tr>
<td style="white-space: nowrap;">
- <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-core/2.0.6/shiro-core-2.0.6.jar">shiro-core</a><br/>
- (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-core/2.0.6/shiro-core-2.0.6.jar.asc">pgp</a>)
+ <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-core/2.1.0/shiro-core-2.1.0.jar">shiro-core</a><br/>
+ (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-core/2.1.0/shiro-core-2.1.0.jar.asc">pgp</a>)
</td>
<td>
<pre><code class="xml language-xml"><dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
- <version>2.0.6</version>
+ <version>2.1.0</version>
</dependency></code></pre>
</td>
@@ -313,15 +313,15 @@ and one of its binding jars is required.
<tr>
<td style="white-space: nowrap;">
- <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-web/2.0.6/shiro-web-2.0.6.jar">shiro-web</a><br/>
- (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-web/2.0.6/shiro-web-2.0.6.jar.asc">pgp</a>)
+ <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-web/2.1.0/shiro-web-2.1.0.jar">shiro-web</a><br/>
+ (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-web/2.1.0/shiro-web-2.1.0.jar.asc">pgp</a>)
</td>
<td>
<pre><code class="xml language-xml"><dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-web</artifactId>
- <version>2.0.6</version>
+ <version>2.1.0</version>
</dependency></code></pre>
</td>
@@ -331,15 +331,15 @@ and one of its binding jars is required.
<tr>
<td style="white-space: nowrap;">
- <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-servlet-plugin/2.0.6/shiro-servlet-plugin-2.0.6.jar">shiro-servlet-plugin</a><br/>
- (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-servlet-plugin/2.0.6/shiro-servlet-plugin-2.0.6.jar.asc">pgp</a>)
+ <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-servlet-plugin/2.1.0/shiro-servlet-plugin-2.1.0.jar">shiro-servlet-plugin</a><br/>
+ (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-servlet-plugin/2.1.0/shiro-servlet-plugin-2.1.0.jar.asc">pgp</a>)
</td>
<td>
<pre><code class="xml language-xml"><dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-servlet-plugin</artifactId>
- <version>2.0.6</version>
+ <version>2.1.0</version>
</dependency></code></pre>
</td>
@@ -349,15 +349,15 @@ and one of its binding jars is required.
<tr>
<td style="white-space: nowrap;">
- <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-cdi/2.0.6/shiro-cdi-2.0.6.jar">shiro-cdi</a><br/>
- (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-cdi/2.0.6/shiro-cdi-2.0.6.jar.asc">pgp</a>)
+ <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-cdi/2.1.0/shiro-cdi-2.1.0.jar">shiro-cdi</a><br/>
+ (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-cdi/2.1.0/shiro-cdi-2.1.0.jar.asc">pgp</a>)
</td>
<td>
<pre><code class="xml language-xml"><dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-cdi</artifactId>
- <version>2.0.6</version>
+ <version>2.1.0</version>
</dependency></code></pre>
</td>
@@ -367,15 +367,15 @@ and one of its binding jars is required.
<tr>
<td style="white-space: nowrap;">
- <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-jakarta-ee/2.0.6/shiro-jakarta-ee-2.0.6.jar">shiro-jakarta-ee</a><br/>
- (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-jakarta-ee/2.0.6/shiro-jakarta-ee-2.0.6.jar.asc">pgp</a>)
+ <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-jakarta-ee/2.1.0/shiro-jakarta-ee-2.1.0.jar">shiro-jakarta-ee</a><br/>
+ (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-jakarta-ee/2.1.0/shiro-jakarta-ee-2.1.0.jar.asc">pgp</a>)
</td>
<td>
<pre><code class="xml language-xml"><dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-jakarta-ee</artifactId>
- <version>2.0.6</version>
+ <version>2.1.0</version>
</dependency></code></pre>
</td>
@@ -385,15 +385,15 @@ and one of its binding jars is required.
<tr>
<td style="white-space: nowrap;">
- <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-jaxrs/2.0.6/shiro-jaxrs-2.0.6.jar">shiro-jaxrs</a><br/>
- (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-jaxrs/2.0.6/shiro-jaxrs-2.0.6.jar.asc">pgp</a>)
+ <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-jaxrs/2.1.0/shiro-jaxrs-2.1.0.jar">shiro-jaxrs</a><br/>
+ (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-jaxrs/2.1.0/shiro-jaxrs-2.1.0.jar.asc">pgp</a>)
</td>
<td>
<pre><code class="xml language-xml"><dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-jaxrs</artifactId>
- <version>2.0.6</version>
+ <version>2.1.0</version>
</dependency></code></pre>
</td>
@@ -403,15 +403,15 @@ and one of its binding jars is required.
<tr>
<td style="white-space: nowrap;">
- <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-aspectj/2.0.6/shiro-aspectj-2.0.6.jar">shiro-aspectj</a><br/>
- (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-aspectj/2.0.6/shiro-aspectj-2.0.6.jar.asc">pgp</a>)
+ <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-aspectj/2.1.0/shiro-aspectj-2.1.0.jar">shiro-aspectj</a><br/>
+ (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-aspectj/2.1.0/shiro-aspectj-2.1.0.jar.asc">pgp</a>)
</td>
<td>
<pre><code class="xml language-xml"><dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-aspectj</artifactId>
- <version>2.0.6</version>
+ <version>2.1.0</version>
</dependency></code></pre>
</td>
@@ -422,15 +422,15 @@ and one of its binding jars is required.
<tr>
<td style="white-space: nowrap;">
- <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-cas/2.0.6/shiro-cas-2.0.6.jar">shiro-cas</a><br/>
- (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-cas/2.0.6/shiro-cas-2.0.6.jar.asc">pgp</a>)
+ <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-cas/2.1.0/shiro-cas-2.1.0.jar">shiro-cas</a><br/>
+ (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-cas/2.1.0/shiro-cas-2.1.0.jar.asc">pgp</a>)
</td>
<td>
<pre><code class="xml language-xml"><dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-cas</artifactId>
- <version>2.0.6</version>
+ <version>2.1.0</version>
</dependency></code></pre>
</td>
@@ -444,51 +444,51 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
<tr>
<td style="white-space: nowrap;">
- <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-ehcache/2.0.6/shiro-ehcache-2.0.6.jar">shiro-ehcache</a><br/>
- (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-ehcache/2.0.6/shiro-ehcache-2.0.6.jar.asc">pgp</a>)
+ <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-ehcache/2.1.0/shiro-ehcache-2.1.0.jar">shiro-ehcache</a><br/>
+ (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-ehcache/2.1.0/shiro-ehcache-2.1.0.jar.asc">pgp</a>)
</td>
<td>
<pre><code class="xml language-xml"><dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-ehcache</artifactId>
- <version>2.0.6</version>
+ <version>2.1.0</version>
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based framework caching.</td>
</tr>
<tr>
<td style="white-space: nowrap;">
- <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-hazelcast/2.0.6/shiro-hazelcast-2.0.6.jar">shiro-hazelcast</a><br/>
- (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-hazelcast/2.0.6/shiro-hazelcast-2.0.6.jar.asc">pgp</a>)
+ <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-hazelcast/2.1.0/shiro-hazelcast-2.1.0.jar">shiro-hazelcast</a><br/>
+ (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-hazelcast/2.1.0/shiro-hazelcast-2.1.0.jar.asc">pgp</a>)
</td>
<td>
<pre><code class="xml language-xml"><dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-hazelcast</artifactId>
- <version>2.0.6</version>
+ <version>2.1.0</version>
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based framework caching.</td>
</tr>
<tr>
<td style="white-space: nowrap;">
- <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-features/2.0.6/shiro-features-2.0.6-features.xml">shiro-features</a><br/>
- (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-features/2.0.6/shiro-features-2.0.6-features.xml.asc">pgp</a>)
+ <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-features/2.1.0/shiro-features-2.1.0-features.xml">shiro-features</a><br/>
+ (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-features/2.1.0/shiro-features-2.1.0-features.xml.asc">pgp</a>)
</td>
<td>
<pre><code class="xml language-xml"><dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-features</artifactId>
- <version>2.0.6</version>
+ <version>2.1.0</version>
</dependency></code></pre>
</td>
@@ -498,15 +498,15 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
<tr>
<td style="white-space: nowrap;">
- <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-guice/2.0.6/shiro-guice-2.0.6.jar">shiro-guice</a><br/>
- (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-guice/2.0.6/shiro-guice-2.0.6.jar.asc">pgp</a>)
+ <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-guice/2.1.0/shiro-guice-2.1.0.jar">shiro-guice</a><br/>
+ (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-guice/2.1.0/shiro-guice-2.1.0.jar.asc">pgp</a>)
</td>
<td>
<pre><code class="xml language-xml"><dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-guice</artifactId>
- <version>2.0.6</version>
+ <version>2.1.0</version>
</dependency></code></pre>
</td>
@@ -516,15 +516,15 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
<tr>
<td style="white-space: nowrap;">
- <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-quartz/2.0.6/shiro-quartz-2.0.6.jar">shiro-quartz</a><br/>
- (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-quartz/2.0.6/shiro-quartz-2.0.6.jar.asc">pgp</a>)
+ <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-quartz/2.1.0/shiro-quartz-2.1.0.jar">shiro-quartz</a><br/>
+ (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-quartz/2.1.0/shiro-quartz-2.1.0.jar.asc">pgp</a>)
</td>
<td>
<pre><code class="xml language-xml"><dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-quartz</artifactId>
- <version>2.0.6</version>
+ <version>2.1.0</version>
</dependency></code></pre>
</td>
@@ -535,15 +535,15 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
<tr>
<td style="white-space: nowrap;">
- <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-spring/2.0.6/shiro-spring-2.0.6.jar">shiro-spring</a><br/>
- (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-spring/2.0.6/shiro-spring-2.0.6.jar.asc">pgp</a>)
+ <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-spring/2.1.0/shiro-spring-2.1.0.jar">shiro-spring</a><br/>
+ (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-spring/2.1.0/shiro-spring-2.1.0.jar.asc">pgp</a>)
</td>
<td>
<pre><code class="xml language-xml"><dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
- <version>2.0.6</version>
+ <version>2.1.0</version>
</dependency></code></pre>
</td>
@@ -553,15 +553,15 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
<tr>
<td style="white-space: nowrap;">
- <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-spring-boot-starter/2.0.6/shiro-spring-boot-starter-2.0.6.jar">shiro-spring-boot-starter</a><br/>
- (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-spring-boot-starter/2.0.6/shiro-spring-boot-starter-2.0.6.jar.asc">pgp</a>)
+ <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-spring-boot-starter/2.1.0/shiro-spring-boot-starter-2.1.0.jar">shiro-spring-boot-starter</a><br/>
+ (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-spring-boot-starter/2.1.0/shiro-spring-boot-starter-2.1.0.jar.asc">pgp</a>)
</td>
<td>
<pre><code class="xml language-xml"><dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring-boot-starter</artifactId>
- <version>2.0.6</version>
+ <version>2.1.0</version>
</dependency></code></pre>
</td>
@@ -571,15 +571,15 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
<tr>
<td style="white-space: nowrap;">
- <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-spring-boot-web-starter/2.0.6/shiro-spring-boot-web-starter-2.0.6.jar">shiro-spring-boot-web-starter</a><br/>
- (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-spring-boot-web-starter/2.0.6/shiro-spring-boot-web-starter-2.0.6.jar.asc">pgp</a>)
+ <a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-spring-boot-web-starter/2.1.0/shiro-spring-boot-web-starter-2.1.0.jar">shiro-spring-boot-web-starter</a><br/>
+ (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/shiro-spring-boot-web-starter/2.1.0/shiro-spring-boot-web-starter-2.1.0.jar.asc">pgp</a>)
</td>
<td>
<pre><code class="xml language-xml"><dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring-boot-web-starter</artifactId>
- <version>2.0.6</version>
+ <version>2.1.0</version>
</dependency></code></pre>
</td>
@@ -589,8 +589,8 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
<tr>
<td style="white-space: nowrap;">
- <a
href="https://repo1.maven.org/maven2/org/apache/shiro/tools/shiro-tools-hasher/2.0.6/shiro-tools-hasher-2.0.6-cli.jar">shiro-tools-hasher</a><br/>
- (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/tools/shiro-tools-hasher/2.0.6/shiro-tools-hasher-2.0.6-cli.jar.asc">pgp</a>)
+ <a
href="https://repo1.maven.org/maven2/org/apache/shiro/tools/shiro-tools-hasher/2.1.0/shiro-tools-hasher-2.1.0-cli.jar">shiro-tools-hasher</a><br/>
+ (<a
href="https://repo1.maven.org/maven2/org/apache/shiro/tools/shiro-tools-hasher/2.1.0/shiro-tools-hasher-2.1.0-cli.jar.asc">pgp</a>)
</td>
<td>
@@ -600,7 +600,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
<td>A command-line program to perform hashing (MD5, SHA, etc) for files,
streams and passwords.
Note that this is a command line program and not intended to be used as a
Maven/program dependency.
It is intended to be downloaded and executed:
-<pre><code class='bash'> java -jar
shiro-tools-hasher-2.0.6-cli.jar</code></pre>
+<pre><code class='bash'> java -jar
shiro-tools-hasher-2.1.0-cli.jar</code></pre>
</td>
</tr>
diff --git a/feed.xml b/feed.xml
index 2850ecd3c..51e0f7187 100644
--- a/feed.xml
+++ b/feed.xml
@@ -4,7 +4,7 @@
<subtitle>Simple. Java. Security.</subtitle>
<link href="https://shiro.apache.org/"/>
<link rel="self" href="https://shiro.apache.org/feed.xml" />
- <updated>2026-01-31T16:57:31Z</updated>
+ <updated>2026-02-09T22:57:11Z</updated>
<author>
<name>Les Hazlewood</name>
@@ -35,6 +35,79 @@
<icon>/images/favicon128.png</icon>
<logo>/images/apache-shiro-logo.png</logo>
+ <entry>
+ <title>2.1.0 available</title>
+ <link
href="https://shiro.apache.org/blog/2026/02/apache-shiro-210-released.html"/>
+
<id>https://shiro.apache.org/blog/2026/02/apache-shiro-210-released.html</id>
+ <updated>2026-02-08T00:00:00Z</updated>
+ <author>
+ <name>Francois Papon</name>
+ </author>
+ <content type="html">
+ <div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>The Apache Shiro team is pleased to announce the release of Apache
Shiro version 2.1.0.</p>
+</div>
+<div class="paragraph">
+<p>This release is available for download now.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="release_highlights">Release Highlights</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This is a maintenance release that includes several bug fixes,
improvements and dependency updates. It is recommended for all users to upgrade
to this version.</p>
+</div>
+<div class="paragraph">
+<p>We have new contributors!</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a
href="https://github.com/celikfatih">@celikfatih</a></p>
+</li>
+<li>
+<p><a
href="https://github.com/haster">@haster</a></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="all_changes">All changes</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>You can learn more on <a
href="https://github.com/apache/shiro/releases/tag/shiro-root-2.1.0">GitHub,
Release 2.1.0</a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="download">Download</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Download and verification instructions are available <a
href="/download.html">on our download page</a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="documentation">Documentation</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>For more information on <a
href="/documentation.html">Shiro, please read the
documentation.</a></p>
+</div>
+<div class="paragraph">
+<p>Enjoy!</p>
+</div>
+<div class="paragraph">
+<p>The Apache Shiro Team</p>
+</div>
+</div>
+</div>
+ </content>
+ </entry>
+
<entry>
<title>2.0.6 available</title>
<link
href="https://shiro.apache.org/blog/2025/11/apache-shiro-206-released.html"/>
@@ -1291,103 +1364,5 @@ Apache Shiro would like to thank v3ged0ge and Adamytd
for reporting this issue.&
</content>
</entry>
- <entry>
- <title>Apache Shiro 1.10.1 available</title>
- <link
href="https://shiro.apache.org/blog/2022/11/19/apache-shiro-1101-released.html"/>
-
<id>https://shiro.apache.org/blog/2022/11/19/apache-shiro-1101-released.html</id>
- <updated>2022-11-19T00:00:00Z</updated>
- <author>
- <name>Benjamin Marwell</name>
- </author>
- <content type="html">
- <div id="preamble">
-<div class="sectionbody">
-<div class="paragraph">
-<p>The Apache Shiro team is pleased to announce the release of Apache
Shiro version 1.10.1.
-This is a feature release for 1.x.</p>
-</div>
-<div class="paragraph">
-<p>This release solves 5 issues since the 1.10.0 release and is
available for download now.</p>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="all_changes">All changes</h2>
-<div class="sectionbody">
-<div class="paragraph">
-<p>You can learn more on <a
href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310950&amp;version=12352460">Jira,
Release 1.10.1</a>.</p>
-</div>
-<div class="paragraph">
-<p>This release does not include classifiers for the Jakarta namespace,
yet.</p>
-</div>
-<div class="sect2">
-<h3 id="bug">Bug</h3>
-<div class="ulist">
-<ul>
-<li>
-<p>[<a
href="https://issues.apache.org/jira/browse/SHIRO-892">SHIRO-892</a>]
- No Guice binding for newly introduced ShiroFilterConfiguration</p>
-</li>
-<li>
-<p>[<a
href="https://issues.apache.org/jira/browse/SHIRO-893">SHIRO-893</a>]
- NPE caused by lack of default ShiroFilterConfiguration</p>
-</li>
-</ul>
-</div>
-</div>
-<div class="sect2">
-<h3 id="test">Test</h3>
-<div class="ulist">
-<ul>
-<li>
-<p>[<a
href="https://issues.apache.org/jira/browse/SHIRO-895">SHIRO-895</a>]
- Work around Guice 4&#8217;s Java 17 compatibliity for Java 17-based
tests</p>
-</li>
-</ul>
-</div>
-</div>
-<div class="sect2">
-<h3 id="dependency_upgrade">Dependency upgrade</h3>
-<div class="ulist">
-<ul>
-<li>
-<p>[<a
href="https://issues.apache.org/jira/browse/SHIRO-894">SHIRO-894</a>]
- EasyMock 5.0.1 for Java 17 compatibility</p>
-</li>
-<li>
-<p>[<a
href="https://issues.apache.org/jira/browse/SHIRO-896">SHIRO-896</a>]
- HSQLDB 2.7.1</p>
-</li>
-</ul>
-</div>
-</div>
-<div class="sect2">
-<h3 id="behavior_changes">Behavior Changes</h3>
-<div class="paragraph">
-<p>As of 1.10.1, the Guice injection will be fixed as we introduced a
regression with 1.10.0 when using Guice with
<code>binder().requireExplicitBindings();</code>.</p>
-</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="download">Download</h2>
-<div class="sectionbody">
-<div class="paragraph">
-<p>Download and verification instructions are available <a
href="/download.html">on our download page</a>.</p>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="documentation">Documentation</h2>
-<div class="sectionbody">
-<div class="paragraph">
-<p>For more information on <a
href="/documentation.html">Shiro, please read the
documentation.</a></p>
-</div>
-<div class="paragraph">
-<p>Enjoy!</p>
-</div>
-<div class="paragraph">
-<p>The Apache Shiro Team</p>
-</div>
-</div>
-</div>
- </content>
- </entry>
-
</feed>
diff --git a/forums.html b/forums.html
index 150400190..757054853 100644
--- a/forums.html
+++ b/forums.html
@@ -20,9 +20,7 @@
<meta charset="utf-8"/>
<title>Apache Shiro Community Forums | Apache Shiro</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="description" content="Access Apache Shiro community forums and
mailing list archives via ASF Pony Mail for user and developer discussions.">
- <meta property="og:description" content="Access Apache Shiro community
forums and mailing list archives via ASF Pony Mail for user and developer
discussions.">
- <meta name="keywords" content='forums,community,support,discussions'>
+ <meta name="keywords" content='documentation,community'>
<meta name="generator" content="JBake">
<meta name="google-site-verification"
content="QIax6uT5UX3enoU0G8Pz2pXbQ45KaQuHZ3nCh9V27mw">
<meta name="google-site-verification"
content="ecFap6dWJgS_GCCtxmJQJ_nFYQhM6EgSpBPZDU7xsCE">
@@ -34,10 +32,8 @@
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@ApacheShiro" />
<meta property="article:modification_time" content="2010-03-18T00:00:00Z"/>
- <meta property="article:tag" content='forums'/>
+ <meta property="article:tag" content='documentation'/>
<meta property="article:tag" content='community'/>
- <meta property="article:tag" content='support'/>
- <meta property="article:tag" content='discussions'/>
<meta property="og:locale" content="en_US" />
<meta property="og:url" content='https://shiro.apache.org/forums.html'/>
<meta property="og:image" content='images/shiro-featured-image.png'/>
@@ -225,26 +221,10 @@
</table>
</div>
-<div class="sect1">
-<h2 id="mailing_lists">Mailing Lists</h2>
+<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
-<p>For those that may prefer mailing lists, please see the <a
href="mailing-lists.html">Mailing Lists</a> information.</p>
-</div>
-<div class="quoteblock">
-<blockquote>
-<div class="paragraph">
-<p><strong>NOTE:</strong> The primary forums for Apache Shiro are the mailing
lists, which can be accessed via the <a href="mailing-lists.html">Mailing
Lists</a> page. This is per the Apache Software Foundation’s community
guidelines.</p>
-</div>
-</blockquote>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="mailing_list_archives">Mailing List Archives</h2>
-<div class="sectionbody">
-<div class="paragraph">
-<p>For users that prefer to browse the mailing lists with a browser can use <a
href="https://lists.apache.org/">ASF Lists</a> (Pony Mail).</p>
+<p>For users that prefer to use browse the mailing lists with a browser can
use <a href="https://lists.apache.org/">ASF Lists</a> (Pony Mail).</p>
</div>
<div class="ulist">
<ul>
@@ -266,10 +246,10 @@
</div>
</div>
<div class="sect1">
-<h2 id="github_discussions">GitHub Discussions</h2>
+<h2 id="mailing_lists">Mailing Lists</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>For questions, ideas, and general community discussion, please use <a
href="https://github.com/apache/shiro/discussions">GitHub Discussions</a>.</p>
+<p>For those that may prefer mailing lists, please see the <a
href="mailing-lists.html">Mailing Lists</a> information.</p>
</div>
</div>
</div>
diff --git a/index.html b/index.html
index 88f6a128f..7393098bb 100644
--- a/index.html
+++ b/index.html
@@ -307,6 +307,10 @@
</div>
<div class="card-body">
+ <div>
+ <a href="blog/2026/02/apache-shiro-210-released.html"><h4
class="news-title">2.1.0 available</h4></a>
+ <p><small>by Francois Papon on 2026-02-08</small></p>
+ </div>
<div>
<a href="blog/2025/11/apache-shiro-206-released.html"><h4
class="news-title">2.0.6 available</h4></a>
<p><small>by Francois Papon on 2025-11-07</small></p>
@@ -323,10 +327,6 @@
<a href="blog/2025/04/apache-shiro-203-released.html"><h4
class="news-title">2.0.3 available</h4></a>
<p><small>by Lenny Primak on 2025-04-06</small></p>
</div>
- <div>
- <a href="blog/2024/11/apache-shiro-202-released.html"><h4
class="news-title">2.0.2 available</h4></a>
- <p><small>by Lenny Primak on 2024-11-13</small></p>
- </div>
<hr/>
<nav class="" aria-label="News Pagination">
diff --git a/issues.html b/issues.html
index 9a2e498f6..bf708573b 100644
--- a/issues.html
+++ b/issues.html
@@ -20,9 +20,9 @@
<meta charset="utf-8"/>
<title>Apache Shiro Bug & Issue Tracking | Apache Shiro</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta name="description" content="Report bugs, request features, and track
issues for Apache Shiro using GitHub Issues tracking system.">
- <meta property="og:description" content="Report bugs, request features,
and track issues for Apache Shiro using GitHub Issues tracking system.">
- <meta name="keywords" content='issues,bugs,jira,bug-tracking,support'>
+ <meta name="description" content="Report bugs, request features, and track
issues for Apache Shiro using GitHub Issues.">
+ <meta property="og:description" content="Report bugs, request features,
and track issues for Apache Shiro using GitHub Issues.">
+ <meta name="keywords" content='issues,bugs,bug-tracking,support'>
<meta name="generator" content="JBake">
<meta name="google-site-verification"
content="QIax6uT5UX3enoU0G8Pz2pXbQ45KaQuHZ3nCh9V27mw">
<meta name="google-site-verification"
content="ecFap6dWJgS_GCCtxmJQJ_nFYQhM6EgSpBPZDU7xsCE">
@@ -36,7 +36,6 @@
<meta property="article:modification_time" content="2010-03-18T00:00:00Z"/>
<meta property="article:tag" content='issues'/>
<meta property="article:tag" content='bugs'/>
- <meta property="article:tag" content='jira'/>
<meta property="article:tag" content='bug-tracking'/>
<meta property="article:tag" content='support'/>
<meta property="og:locale" content="en_US" />
diff --git a/news.html b/news.html
index 58091190b..3744d3678 100644
--- a/news.html
+++ b/news.html
@@ -196,9 +196,14 @@
</div>
<!--<ul>-->
- <h4>November 2025</h4>
+ <h4>February 2026</h4>
<ul>
+ <li>08 - <a href="blog/2026/02/apache-shiro-210-released.html">2.1.0
available</a></li>
+ </ul>
+ <h4>November 2025</h4>
+ <ul>
+
<li>07 - <a href="blog/2025/11/apache-shiro-206-released.html">2.0.6
available</a></li>
</ul>
<h4>July 2025</h4>
diff --git a/release-archive.html b/release-archive.html
index 36f2308a0..78646a06f 100644
--- a/release-archive.html
+++ b/release-archive.html
@@ -211,7 +211,7 @@
</div>
<div class="paragraph">
<p>To download archived versions of Apache Shiro please follow the
instructions below.
-Please note that the current version of Apache Shiro is 2.0.6.
+Please note that the current version of Apache Shiro is 2.1.0.
We recommend to stick to the latest version.</p>
</div>
</div>
@@ -513,7 +513,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based framework caching.</td>
</tr>
<tr>
@@ -531,7 +531,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based framework caching.</td>
</tr>
<tr>
@@ -859,7 +859,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based framework caching.</td>
</tr>
<tr>
@@ -877,7 +877,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based framework caching.</td>
</tr>
<tr>
@@ -1205,7 +1205,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based framework caching.</td>
</tr>
<tr>
@@ -1223,7 +1223,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based framework caching.</td>
</tr>
<tr>
@@ -1551,7 +1551,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based framework caching.</td>
</tr>
<tr>
@@ -1569,7 +1569,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based framework caching.</td>
</tr>
<tr>
@@ -1897,7 +1897,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based framework caching.</td>
</tr>
<tr>
@@ -1915,7 +1915,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based framework caching.</td>
</tr>
<tr>
@@ -2243,7 +2243,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based framework caching.</td>
</tr>
<tr>
@@ -2261,7 +2261,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based framework caching.</td>
</tr>
<tr>
@@ -2589,7 +2589,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based framework caching.</td>
</tr>
<tr>
@@ -2607,7 +2607,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based framework caching.</td>
</tr>
<tr>
@@ -2935,7 +2935,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based framework caching.</td>
</tr>
<tr>
@@ -2953,7 +2953,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based framework caching.</td>
</tr>
<tr>
@@ -3281,7 +3281,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based framework caching.</td>
</tr>
<tr>
@@ -3299,7 +3299,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based framework caching.</td>
</tr>
<tr>
@@ -3627,7 +3627,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based framework caching.</td>
</tr>
<tr>
@@ -3645,7 +3645,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based framework caching.</td>
</tr>
<tr>
@@ -3937,7 +3937,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based framework caching.</td>
</tr>
<tr>
@@ -3955,7 +3955,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://hazelcast.org">Hazelcast</a>-based framework caching.</td>
</tr>
<tr>
@@ -4211,7 +4211,7 @@ to the Apache Shiro based <a
href='https://github.com/bujiio/buji-pac4j'>buji-pa
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based framework caching.</td>
</tr>
<tr>
@@ -4445,7 +4445,7 @@ and one of its binding jars is required.
</dependency></code></pre>
</td>
- <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based famework caching.</td>
+ <td>Enables <a class="external-link"
href="https://www.ehcache.org">Ehcache</a>-based framework caching.</td>
</tr>
<tr>
diff --git a/security-reports.html b/security-reports.html
index 8c63fd357..3438bce79 100644
--- a/security-reports.html
+++ b/security-reports.html
@@ -232,6 +232,8 @@
<li><a href="#vulnerability_handling_process">Vulnerability Handling
Process</a></li>
<li><a href="#apache_shiro_vulnerability_reports">Apache Shiro Vulnerability
Reports</a>
<ul class="sectlevel2">
+<li><a href="#cve_2026_23903">CVE-2026-23903</a></li>
+<li><a href="#cve_2026_23901">CVE-2026-23901</a></li>
<li><a href="#cve_2023_46749">CVE-2023-46749</a></li>
<li><a href="#cve_2023_46750">CVE-2023-46750</a></li>
<li><a href="#cve_2023_34478">CVE-2023-34478</a></li>
@@ -299,6 +301,47 @@ We cannot accept regular bug reports or other queries at
this address.</p>
<h2 id="apache_shiro_vulnerability_reports">Apache Shiro Vulnerability
Reports</h2>
<div class="sectionbody">
<div class="sect2">
+<h3 id="cve_2026_23903"><a
href="https://www.cve.org/CVERecord?id=CVE-2026-23903">CVE-2026-23903</a></h3>
+<div class="paragraph">
+<p>If static files are served from a case-insensitive filesystem,
+such as default macOS setup, static files may be accessed by varying the case
of the filename in the request.
+If only lower-case (common default) filters are present in Shiro, they may be
bypassed this way.
+The issue only effects static files.</p>
+</div>
+<div class="paragraph">
+<p>Shiro 2.1.0 and later has a new parameters to remediate this issue
+shiro.ini: <code>filterChainResolver.caseInsensitive = true</code>
+application.properties: <code>shiro.caseInsensitive=true</code></p>
+</div>
+<div class="paragraph">
+<p>Shiro 3.0.0 and later (upcoming) makes this the default.</p>
+</div>
+<div class="paragraph">
+<p><strong>Mitigation:</strong> Upgrade to version 2.1.0 or later, which fixes
the issue.</p>
+</div>
+<div class="paragraph">
+<p><strong>Credit:</strong>
+Apache Shiro would like to thank <strong>Jesse Yang</strong> for reporting
this issue.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="cve_2026_23901"><a
href="https://www.cve.org/CVERecord?id=CVE-2026-23901">CVE-2026-23901</a></h3>
+<div class="paragraph">
+<p>Prior to Shiro 2.1.0, code paths for non-existent vs. existing users are
different enough,
+that a brute-force attack may be able to tell, by timing the requests only,
determine if
+the request failed because of a non-existent user vs. wrong password.<br>
+The most likely attack vector is a local attack only.</p>
+</div>
+<div class="paragraph">
+<p><strong>Mitigation:</strong> Upgrade to version 2.1.0 or later, which fixes
the issue, or ensure that
+the infrastructure-level mitigations are in place to prevent brute-force
attacks, such as rate-limiting or account lockout.</p>
+</div>
+<div class="paragraph">
+<p><strong>Credit:</strong>
+Apache Shiro would like to thank <strong>4ra1n</strong> and
<strong>Y4tacker</strong> for reporting this issue.</p>
+</div>
+</div>
+<div class="sect2">
<h3 id="cve_2023_46749"><a
href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-46749">CVE-2023-46749</a></h3>
<div class="paragraph">
<p>Apache Shiro before 1.13.0 or 2.0.0-alpha-4, may be susceptible to a path
traversal attack that results in an authentication bypass when used together
with path rewriting</p>
diff --git a/sitemap.xml b/sitemap.xml
index fe76d2ddc..c88334051 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -28,26 +28,6 @@
<loc>https://shiro.apache.org/10-minute-tutorial.html</loc>
<lastmod>2016-10-23</lastmod>
</url>
- <url>
- <loc>https://shiro.apache.org/web.html</loc>
- <lastmod>2010-03-18</lastmod>
- </url>
- <url>
- <loc>https://shiro.apache.org/spring-boot.html</loc>
- <lastmod>2010-03-18</lastmod>
- </url>
- <url>
- <loc>https://shiro.apache.org/powered-by-shiro.html</loc>
- <lastmod>2010-03-18</lastmod>
- </url>
- <url>
- <loc>https://shiro.apache.org/developers.html</loc>
- <lastmod>2010-03-18</lastmod>
- </url>
- <url>
- <loc>https://shiro.apache.org/cas.html</loc>
- <lastmod>2010-03-18</lastmod>
- </url>
<url>
<loc>https://shiro.apache.org/web-features.html</loc>
<lastmod>2010-03-18</lastmod>
@@ -81,7 +61,7 @@
<lastmod>2010-03-18</lastmod>
</url>
<url>
- <loc>https://shiro.apache.org/authorization.html</loc>
+ <loc>https://shiro.apache.org/authorizer.html</loc>
<lastmod>2010-03-18</lastmod>
</url>
<url>
@@ -101,7 +81,7 @@
<lastmod>2010-03-18</lastmod>
</url>
<url>
- <loc>https://shiro.apache.org/authorization-features.html</loc>
+ <loc>https://shiro.apache.org/authorization.html</loc>
<lastmod>2010-03-18</lastmod>
</url>
<url>
@@ -116,6 +96,10 @@
<loc>https://shiro.apache.org/cryptography-features.html</loc>
<lastmod>2010-03-18</lastmod>
</url>
+ <url>
+ <loc>https://shiro.apache.org/authorization-features.html</loc>
+ <lastmod>2010-03-18</lastmod>
+ </url>
<url>
<loc>https://shiro.apache.org/tools.html</loc>
<lastmod>2010-03-18</lastmod>
@@ -137,7 +121,7 @@
<lastmod>2010-03-18</lastmod>
</url>
<url>
- <loc>https://shiro.apache.org/authentication.html</loc>
+ <loc>https://shiro.apache.org/authenticator.html</loc>
<lastmod>2010-03-18</lastmod>
</url>
<url>
@@ -156,6 +140,10 @@
<loc>https://shiro.apache.org/guice.html</loc>
<lastmod>2010-03-18</lastmod>
</url>
+ <url>
+ <loc>https://shiro.apache.org/authentication.html</loc>
+ <lastmod>2010-03-18</lastmod>
+ </url>
<url>
<loc>https://shiro.apache.org/terminology.html</loc>
<lastmod>2010-03-18</lastmod>
@@ -172,10 +160,6 @@
<loc>https://shiro.apache.org/configuration.html</loc>
<lastmod>2010-03-18</lastmod>
</url>
- <url>
- <loc>https://shiro.apache.org/authentication-features.html</loc>
- <lastmod>2010-03-18</lastmod>
- </url>
<url>
<loc>https://shiro.apache.org/roadmap.html</loc>
<lastmod>2010-03-18</lastmod>
@@ -189,7 +173,7 @@
<lastmod>2010-03-18</lastmod>
</url>
<url>
- <loc>https://shiro.apache.org/articles.html</loc>
+ <loc>https://shiro.apache.org/authentication-features.html</loc>
<lastmod>2010-03-18</lastmod>
</url>
<url>
@@ -201,7 +185,7 @@
<lastmod>2010-03-18</lastmod>
</url>
<url>
- <loc>https://shiro.apache.org/architecture.html</loc>
+ <loc>https://shiro.apache.org/articles.html</loc>
<lastmod>2010-03-18</lastmod>
</url>
<url>
@@ -225,7 +209,7 @@
<lastmod>2010-03-18</lastmod>
</url>
<url>
- <loc>https://shiro.apache.org/adoption.html</loc>
+ <loc>https://shiro.apache.org/architecture.html</loc>
<lastmod>2010-03-18</lastmod>
</url>
<url>
@@ -249,7 +233,7 @@
<lastmod>2010-03-18</lastmod>
</url>
<url>
- <loc>https://shiro.apache.org/about.html</loc>
+ <loc>https://shiro.apache.org/adoption.html</loc>
<lastmod>2010-03-18</lastmod>
</url>
<url>
@@ -268,6 +252,10 @@
<loc>https://shiro.apache.org/command-line-hasher.html</loc>
<lastmod>2010-03-18</lastmod>
</url>
+ <url>
+ <loc>https://shiro.apache.org/about.html</loc>
+ <lastmod>2010-03-18</lastmod>
+ </url>
<url>
<loc>https://shiro.apache.org/webapp-tutorial.html</loc>
<lastmod>2010-03-18</lastmod>
@@ -284,6 +272,30 @@
<loc>https://shiro.apache.org/documentation.html</loc>
<lastmod>2010-03-18</lastmod>
</url>
+ <url>
+ <loc>https://shiro.apache.org/web.html</loc>
+ <lastmod>2010-03-18</lastmod>
+ </url>
+ <url>
+ <loc>https://shiro.apache.org/spring-boot.html</loc>
+ <lastmod>2010-03-18</lastmod>
+ </url>
+ <url>
+ <loc>https://shiro.apache.org/powered-by-shiro.html</loc>
+ <lastmod>2010-03-18</lastmod>
+ </url>
+ <url>
+ <loc>https://shiro.apache.org/developers.html</loc>
+ <lastmod>2010-03-18</lastmod>
+ </url>
+ <url>
+ <loc>https://shiro.apache.org/cas.html</loc>
+ <lastmod>2010-03-18</lastmod>
+ </url>
+ <url>
+
<loc>https://shiro.apache.org/blog/2026/02/apache-shiro-210-released.html</loc>
+ <lastmod>2026-02-08</lastmod>
+ </url>
<url>
<loc>https://shiro.apache.org/blog/2025/11/apache-shiro-206-released.html</loc>
<lastmod>2025-11-07</lastmod>
@@ -552,14 +564,6 @@
<loc>https://shiro.apache.org/codec.html</loc>
<lastmod>2023-02-08</lastmod>
</url>
- <url>
- <loc>https://shiro.apache.org/authorizer.html</loc>
- <lastmod>2023-02-08</lastmod>
- </url>
- <url>
- <loc>https://shiro.apache.org/authenticator.html</loc>
- <lastmod>2023-02-08</lastmod>
- </url>
<url>
<loc>https://shiro.apache.org/cryptography.html</loc>
<lastmod>2010-03-18</lastmod>
diff --git a/spring-boot.html b/spring-boot.html
index 3cc5d5aeb..e9750dc50 100644
--- a/spring-boot.html
+++ b/spring-boot.html
@@ -340,7 +340,7 @@
<pre><code class='xml language-xml'><dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring-boot-web-starter</artifactId>
- <version>2.0.6</version>
+ <version>2.1.0</version>
</dependency>
</code></pre>
</div>
@@ -350,7 +350,7 @@
role="tabpanel"
aria-labelledby="gradle-web-tab"
>
- <pre><code class='groovy language-groovy'>compile
'org.apache.shiro:shiro-spring-boot-web-starter:2.0.6'
+ <pre><code class='groovy language-groovy'>compile
'org.apache.shiro:shiro-spring-boot-web-starter:2.1.0'
</code></pre>
</div>
<div
@@ -359,7 +359,7 @@
role="tabpanel"
aria-labelledby="sbt-web-tab"
>
- <pre><code class='scala language-scala'>libraryDependencies +=
"org.apache.shiro" % "shiro-spring-boot-web-starter" % "2.0.6"
+ <pre><code class='scala language-scala'>libraryDependencies +=
"org.apache.shiro" % "shiro-spring-boot-web-starter" % "2.1.0"
</code></pre>
</div>
<div
@@ -368,7 +368,7 @@
role="tabpanel"
aria-labelledby="ivy-web-tab"
>
- <pre><code class='xml language-xml'><dependency org="org.apache.shiro"
name="shiro-spring-boot-web-starter" rev="2.0.6"/>
+ <pre><code class='xml language-xml'><dependency org="org.apache.shiro"
name="shiro-spring-boot-web-starter" rev="2.1.0"/>
</code></pre>
</div>
<div
@@ -377,7 +377,7 @@
role="tabpanel"
aria-labelledby="leiningen-web-tab"
>
- <pre><code class='clojure
language-clojure'>[org.apache.shiro/shiro-spring-boot-web-starter "2.0.6"]
+ <pre><code class='clojure
language-clojure'>[org.apache.shiro/shiro-spring-boot-web-starter "2.1.0"]
</code></pre>
</div>
<div
@@ -386,7 +386,7 @@
role="tabpanel"
aria-labelledby="buildr-web-tab"
>
- <pre><code class='groovy
language-groovy'>'org.apache.shiro:shiro-spring-boot-web-starter:jar:2.0.6'
+ <pre><code class='groovy
language-groovy'>'org.apache.shiro:shiro-spring-boot-web-starter:jar:2.1.0'
</code></pre>
</div>
</div>
@@ -716,7 +716,7 @@ protected CacheManager cacheManager() {
<pre><code class='xml language-xml'><dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring-boot-starter</artifactId>
- <version>2.0.6</version>
+ <version>2.1.0</version>
</dependency>
</code></pre>
</div>
@@ -726,7 +726,7 @@ protected CacheManager cacheManager() {
role="tabpanel"
aria-labelledby="gradle-cli-tab"
>
- <pre><code class='groovy language-groovy'>compile
'org.apache.shiro:shiro-spring-boot-starter:2.0.6'
+ <pre><code class='groovy language-groovy'>compile
'org.apache.shiro:shiro-spring-boot-starter:2.1.0'
</code></pre>
</div>
<div
@@ -735,7 +735,7 @@ protected CacheManager cacheManager() {
role="tabpanel"
aria-labelledby="sbt-cli-tab"
>
- <pre><code class='scala language-scala'>libraryDependencies +=
"org.apache.shiro" % "shiro-spring-boot-starter" % "2.0.6"
+ <pre><code class='scala language-scala'>libraryDependencies +=
"org.apache.shiro" % "shiro-spring-boot-starter" % "2.1.0"
</code></pre>
</div>
<div
@@ -744,7 +744,7 @@ protected CacheManager cacheManager() {
role="tabpanel"
aria-labelledby="ivy-cli-tab"
>
- <pre><code class='xml language-xml'><dependency org="org.apache.shiro"
name="shiro-spring-boot-starter" rev="2.0.6"/>
+ <pre><code class='xml language-xml'><dependency org="org.apache.shiro"
name="shiro-spring-boot-starter" rev="2.1.0"/>
</code></pre>
</div>
<div
@@ -753,7 +753,7 @@ protected CacheManager cacheManager() {
role="tabpanel"
aria-labelledby="leiningen-cli-tab"
>
- <pre><code class='clojure
language-clojure'>[org.apache.shiro/shiro-spring-boot-starter "2.0.6"]
+ <pre><code class='clojure
language-clojure'>[org.apache.shiro/shiro-spring-boot-starter "2.1.0"]
</code></pre>
</div>
<div
@@ -762,7 +762,7 @@ protected CacheManager cacheManager() {
role="tabpanel"
aria-labelledby="buildr-cli-tab"
>
- <pre><code class='groovy
language-groovy'>'org.apache.shiro:shiro-spring-boot-starter:jar:2.0.6'
+ <pre><code class='groovy
language-groovy'>'org.apache.shiro:shiro-spring-boot-starter:jar:2.1.0'
</code></pre>
</div>
</div>