blob: cbe892aa930b39e6fd2aba2049ed46b7b000a099 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Uses of Package org.apache.shiro.realm (Apache Shiro :: Core 1.10.0 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Uses of Package org.apache.shiro.realm (Apache Shiro :: Core 1.10.0 API)";
}
}
catch(err) {
}
//-->
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav"><!-- Matomo --> <script> var _paq = window._paq = window._paq || []; /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ /* We explicitly disable cookie tracking to avoid privacy issues */ _paq.push(['disableCookies']); _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="//matomo.privacy.apache.org/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '2']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script> <!-- End Matomo Code -->
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Use</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 title="Uses of Package org.apache.shiro.realm" class="title">Uses of Package<br>org.apache.shiro.realm</h1>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="useSummary">
<caption><span>Packages that use <a href="package-summary.html">org.apache.shiro.realm</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Package</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.shiro.authc.pam">org.apache.shiro.authc.pam</a></th>
<td class="colLast">
<div class="block">Support for <em>PAM</em>, or <b>P</b>luggable <b>A</b>uthentication <b>M</b>odules, which is
the capability to authenticate a user against multiple configurable (pluggable) <em>modules</em> (Shiro
calls these <a href="Realm.html" title="interface in org.apache.shiro.realm"><code>Realm</code></a>s).</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.shiro.authz">org.apache.shiro.authz</a></th>
<td class="colLast">
<div class="block">Core interfaces and exceptions supporting Authorization (access control).</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.shiro.config">org.apache.shiro.config</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.shiro.mgt">org.apache.shiro.mgt</a></th>
<td class="colLast">
<div class="block">Provides the master <a href="../mgt/SecurityManager.html" title="interface in org.apache.shiro.mgt"><code>SecurityManager</code></a> interface and a default implementation
hierarchy for managing all aspects of Shiro's functionality in an application.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.shiro.realm">org.apache.shiro.realm</a></th>
<td class="colLast">
<div class="block">Components and sub-packages used in supporting the core <a href="Realm.html" title="interface in org.apache.shiro.realm"><code>Realm</code></a> interface.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.shiro.realm.activedirectory">org.apache.shiro.realm.activedirectory</a></th>
<td class="colLast">
<div class="block">Realms that acquire security data from a Microsoft Active Directory.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.shiro.realm.jdbc">org.apache.shiro.realm.jdbc</a></th>
<td class="colLast">
<div class="block">Realms that acquire security data from an RDBMS (Relational Database Management System) using the
JDBC API.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.shiro.realm.jndi">org.apache.shiro.realm.jndi</a></th>
<td class="colLast">
<div class="block">Support for acquiring Realms from JNDI, particularly useful for configuring Shiro in JEE or EJB environments.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="#org.apache.shiro.realm.ldap">org.apache.shiro.realm.ldap</a></th>
<td class="colLast">
<div class="block">Realms that acquire security data from an LDAP (Lightweight Directory Access Protocol) server
utilizing LDAP/Naming APIs.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="#org.apache.shiro.realm.text">org.apache.shiro.realm.text</a></th>
<td class="colLast">
<div class="block">Realms that acquire security data from text-based data sources such as <code>File</code>s or
text streams.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a id="org.apache.shiro.authc.pam">
<!-- -->
</a>
<table class="useSummary">
<caption><span>Classes in <a href="package-summary.html">org.apache.shiro.realm</a> used by <a href="../authc/pam/package-summary.html">org.apache.shiro.authc.pam</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="class-use/Realm.html#org.apache.shiro.authc.pam">Realm</a></th>
<td class="colLast">
<div class="block">A <tt>Realm</tt> is a security component that can access application-specific security entities
such as users, roles, and permissions to determine authentication and authorization operations.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a id="org.apache.shiro.authz">
<!-- -->
</a>
<table class="useSummary">
<caption><span>Classes in <a href="package-summary.html">org.apache.shiro.realm</a> used by <a href="../authz/package-summary.html">org.apache.shiro.authz</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="class-use/Realm.html#org.apache.shiro.authz">Realm</a></th>
<td class="colLast">
<div class="block">A <tt>Realm</tt> is a security component that can access application-specific security entities
such as users, roles, and permissions to determine authentication and authorization operations.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a id="org.apache.shiro.config">
<!-- -->
</a>
<table class="useSummary">
<caption><span>Classes in <a href="package-summary.html">org.apache.shiro.realm</a> used by <a href="../config/package-summary.html">org.apache.shiro.config</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="class-use/Realm.html#org.apache.shiro.config">Realm</a></th>
<td class="colLast">
<div class="block">A <tt>Realm</tt> is a security component that can access application-specific security entities
such as users, roles, and permissions to determine authentication and authorization operations.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a id="org.apache.shiro.mgt">
<!-- -->
</a>
<table class="useSummary">
<caption><span>Classes in <a href="package-summary.html">org.apache.shiro.realm</a> used by <a href="../mgt/package-summary.html">org.apache.shiro.mgt</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="class-use/Realm.html#org.apache.shiro.mgt">Realm</a></th>
<td class="colLast">
<div class="block">A <tt>Realm</tt> is a security component that can access application-specific security entities
such as users, roles, and permissions to determine authentication and authorization operations.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a id="org.apache.shiro.realm">
<!-- -->
</a>
<table class="useSummary">
<caption><span>Classes in <a href="package-summary.html">org.apache.shiro.realm</a> used by <a href="package-summary.html">org.apache.shiro.realm</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="class-use/AuthenticatingRealm.html#org.apache.shiro.realm">AuthenticatingRealm</a></th>
<td class="colLast">
<div class="block">A top-level abstract implementation of the <tt>Realm</tt> interface that only implements authentication support
(log-in) operations and leaves authorization (access control) behavior to subclasses.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="class-use/AuthorizingRealm.html#org.apache.shiro.realm">AuthorizingRealm</a></th>
<td class="colLast">
<div class="block">An <code>AuthorizingRealm</code> extends the <code>AuthenticatingRealm</code>'s capabilities by adding Authorization
(access control) support.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="class-use/CachingRealm.html#org.apache.shiro.realm">CachingRealm</a></th>
<td class="colLast">
<div class="block">A very basic abstract extension point for the <a href="Realm.html" title="interface in org.apache.shiro.realm"><code>Realm</code></a> interface that provides caching support for subclasses.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="class-use/Realm.html#org.apache.shiro.realm">Realm</a></th>
<td class="colLast">
<div class="block">A <tt>Realm</tt> is a security component that can access application-specific security entities
such as users, roles, and permissions to determine authentication and authorization operations.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a id="org.apache.shiro.realm.activedirectory">
<!-- -->
</a>
<table class="useSummary">
<caption><span>Classes in <a href="package-summary.html">org.apache.shiro.realm</a> used by <a href="activedirectory/package-summary.html">org.apache.shiro.realm.activedirectory</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="class-use/AuthenticatingRealm.html#org.apache.shiro.realm.activedirectory">AuthenticatingRealm</a></th>
<td class="colLast">
<div class="block">A top-level abstract implementation of the <tt>Realm</tt> interface that only implements authentication support
(log-in) operations and leaves authorization (access control) behavior to subclasses.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="class-use/AuthorizingRealm.html#org.apache.shiro.realm.activedirectory">AuthorizingRealm</a></th>
<td class="colLast">
<div class="block">An <code>AuthorizingRealm</code> extends the <code>AuthenticatingRealm</code>'s capabilities by adding Authorization
(access control) support.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="class-use/CachingRealm.html#org.apache.shiro.realm.activedirectory">CachingRealm</a></th>
<td class="colLast">
<div class="block">A very basic abstract extension point for the <a href="Realm.html" title="interface in org.apache.shiro.realm"><code>Realm</code></a> interface that provides caching support for subclasses.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="class-use/Realm.html#org.apache.shiro.realm.activedirectory">Realm</a></th>
<td class="colLast">
<div class="block">A <tt>Realm</tt> is a security component that can access application-specific security entities
such as users, roles, and permissions to determine authentication and authorization operations.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a id="org.apache.shiro.realm.jdbc">
<!-- -->
</a>
<table class="useSummary">
<caption><span>Classes in <a href="package-summary.html">org.apache.shiro.realm</a> used by <a href="jdbc/package-summary.html">org.apache.shiro.realm.jdbc</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="class-use/AuthenticatingRealm.html#org.apache.shiro.realm.jdbc">AuthenticatingRealm</a></th>
<td class="colLast">
<div class="block">A top-level abstract implementation of the <tt>Realm</tt> interface that only implements authentication support
(log-in) operations and leaves authorization (access control) behavior to subclasses.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="class-use/AuthorizingRealm.html#org.apache.shiro.realm.jdbc">AuthorizingRealm</a></th>
<td class="colLast">
<div class="block">An <code>AuthorizingRealm</code> extends the <code>AuthenticatingRealm</code>'s capabilities by adding Authorization
(access control) support.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="class-use/CachingRealm.html#org.apache.shiro.realm.jdbc">CachingRealm</a></th>
<td class="colLast">
<div class="block">A very basic abstract extension point for the <a href="Realm.html" title="interface in org.apache.shiro.realm"><code>Realm</code></a> interface that provides caching support for subclasses.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="class-use/Realm.html#org.apache.shiro.realm.jdbc">Realm</a></th>
<td class="colLast">
<div class="block">A <tt>Realm</tt> is a security component that can access application-specific security entities
such as users, roles, and permissions to determine authentication and authorization operations.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a id="org.apache.shiro.realm.jndi">
<!-- -->
</a>
<table class="useSummary">
<caption><span>Classes in <a href="package-summary.html">org.apache.shiro.realm</a> used by <a href="jndi/package-summary.html">org.apache.shiro.realm.jndi</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="class-use/Realm.html#org.apache.shiro.realm.jndi">Realm</a></th>
<td class="colLast">
<div class="block">A <tt>Realm</tt> is a security component that can access application-specific security entities
such as users, roles, and permissions to determine authentication and authorization operations.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="class-use/RealmFactory.html#org.apache.shiro.realm.jndi">RealmFactory</a></th>
<td class="colLast">
<div class="block">Enables Shiro end-users to configure and initialize one or more <a href="Realm.html" title="interface in org.apache.shiro.realm"><code>Realm</code></a> instances
in any manner desired.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a id="org.apache.shiro.realm.ldap">
<!-- -->
</a>
<table class="useSummary">
<caption><span>Classes in <a href="package-summary.html">org.apache.shiro.realm</a> used by <a href="ldap/package-summary.html">org.apache.shiro.realm.ldap</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="class-use/AuthenticatingRealm.html#org.apache.shiro.realm.ldap">AuthenticatingRealm</a></th>
<td class="colLast">
<div class="block">A top-level abstract implementation of the <tt>Realm</tt> interface that only implements authentication support
(log-in) operations and leaves authorization (access control) behavior to subclasses.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="class-use/AuthorizingRealm.html#org.apache.shiro.realm.ldap">AuthorizingRealm</a></th>
<td class="colLast">
<div class="block">An <code>AuthorizingRealm</code> extends the <code>AuthenticatingRealm</code>'s capabilities by adding Authorization
(access control) support.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="class-use/CachingRealm.html#org.apache.shiro.realm.ldap">CachingRealm</a></th>
<td class="colLast">
<div class="block">A very basic abstract extension point for the <a href="Realm.html" title="interface in org.apache.shiro.realm"><code>Realm</code></a> interface that provides caching support for subclasses.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="class-use/Realm.html#org.apache.shiro.realm.ldap">Realm</a></th>
<td class="colLast">
<div class="block">A <tt>Realm</tt> is a security component that can access application-specific security entities
such as users, roles, and permissions to determine authentication and authorization operations.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a id="org.apache.shiro.realm.text">
<!-- -->
</a>
<table class="useSummary">
<caption><span>Classes in <a href="package-summary.html">org.apache.shiro.realm</a> used by <a href="text/package-summary.html">org.apache.shiro.realm.text</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="class-use/AuthenticatingRealm.html#org.apache.shiro.realm.text">AuthenticatingRealm</a></th>
<td class="colLast">
<div class="block">A top-level abstract implementation of the <tt>Realm</tt> interface that only implements authentication support
(log-in) operations and leaves authorization (access control) behavior to subclasses.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="class-use/AuthorizingRealm.html#org.apache.shiro.realm.text">AuthorizingRealm</a></th>
<td class="colLast">
<div class="block">An <code>AuthorizingRealm</code> extends the <code>AuthenticatingRealm</code>'s capabilities by adding Authorization
(access control) support.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="class-use/CachingRealm.html#org.apache.shiro.realm.text">CachingRealm</a></th>
<td class="colLast">
<div class="block">A very basic abstract extension point for the <a href="Realm.html" title="interface in org.apache.shiro.realm"><code>Realm</code></a> interface that provides caching support for subclasses.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="class-use/Realm.html#org.apache.shiro.realm.text">Realm</a></th>
<td class="colLast">
<div class="block">A <tt>Realm</tt> is a security component that can access application-specific security entities
such as users, roles, and permissions to determine authentication and authorization operations.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="class-use/SimpleAccountRealm.html#org.apache.shiro.realm.text">SimpleAccountRealm</a></th>
<td class="colLast">
<div class="block">A simple implementation of the <a href="Realm.html" title="interface in org.apache.shiro.realm"><code>Realm</code></a> interface that
uses a set of configured user accounts and roles to support authentication and authorization.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Use</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2004&#x2013;2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>