<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.11.1 at 2023-01-07 
 | Rendered using Apache Maven Fluido Skin 1.5
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="Date-Revision-yyyymmdd" content="20230107" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Shiro :: Support :: Spring Boot Parent &#x2013; Project Information</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.5.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />

      
    <script type="text/javascript" src="./js/apache-maven-fluido-1.5.min.js"></script>

                      </head>
        <body class="topBarDisabled">
          
        
    
        <div class="container-fluid">
          <div id="banner">
        <div class="pull-left">
                                    <a href="http://shiro.apache.org" id="bannerLeft">
                                                                                        <img src="http://shiro.apache.org/images/apache-shiro-logo.png"  alt="Shiro"/>
                </a>
                      </div>
        <div class="pull-right">              <div id="bannerRight">
                                                                                        <img src="http://shiro.apache.org/images/asf_logo.png" />
                </div>
      </div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
              
                              <li class="">
                    <a href="../../index.html" title="Apache Shiro :: Support :: Spring Boot Parent">
        Apache Shiro :: Support :: Spring Boot Parent</a>
                    <span class="divider">/</span>
      </li>
            <li class="">
                    <a href="../index.html" title="Apache Shiro :: Support">
        Apache Shiro :: Support</a>
                    <span class="divider">/</span>
      </li>
            <li class="">
                    <a href="index.html" title="Apache Shiro :: Support :: Spring Boot Parent">
        Apache Shiro :: Support :: Spring Boot Parent</a>
                    <span class="divider">/</span>
      </li>
        <li class="active ">Project Information</li>
        
              
                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2023-01-07</li>
              <li id="projectVersion" class="pull-right">
                    Version: 1.11.0
        </li>
            
                            </ul>
      </div>

            
      <div class="row-fluid">
        <div id="leftColumn" class="span2">
          <div class="well sidebar-nav">
              
                <ul class="nav nav-list">
                    <li class="nav-header">Parent Project</li>
                              
      <li>
  
                          <a href="../index.html" title="Apache Shiro :: Support">
          <span class="none"></span>
        Apache Shiro :: Support</a>
            </li>
                              <li class="nav-header">Modules</li>
                              
      <li>
  
                          <a href="shiro-spring-boot-starter/index.html" title="Apache Shiro :: Support :: Spring Boot">
          <span class="none"></span>
        Apache Shiro :: Support :: Spring Boot</a>
            </li>
                
      <li>
  
                          <a href="shiro-spring-boot-web-starter/index.html" title="Apache Shiro :: Support :: Spring Boot Web">
          <span class="none"></span>
        Apache Shiro :: Support :: Spring Boot Web</a>
            </li>
                              <li class="nav-header">Project Documentation</li>
                                                                                                                                                                                                                                                                                                                                                
      <li class="active">
  
            <a href="#"><span class="icon-chevron-down"></span>Project Information</a>
                  <ul class="nav nav-list">
                    
      <li>
  
                          <a href="ci-management.html" title="CI Management">
          <span class="none"></span>
        CI Management</a>
            </li>
                    
      <li>
  
                          <a href="dependencies.html" title="Dependencies">
          <span class="none"></span>
        Dependencies</a>
            </li>
                    
      <li>
  
                          <a href="dependency-info.html" title="Dependency Information">
          <span class="none"></span>
        Dependency Information</a>
            </li>
                    
      <li>
  
                          <a href="dependency-management.html" title="Dependency Management">
          <span class="none"></span>
        Dependency Management</a>
            </li>
                    
      <li>
  
                          <a href="distribution-management.html" title="Distribution Management">
          <span class="none"></span>
        Distribution Management</a>
            </li>
                    
      <li>
  
                          <a href="index.html" title="About">
          <span class="none"></span>
        About</a>
            </li>
                    
      <li>
  
                          <a href="issue-management.html" title="Issue Management">
          <span class="none"></span>
        Issue Management</a>
            </li>
                    
      <li>
  
                          <a href="licenses.html" title="Licenses">
          <span class="none"></span>
        Licenses</a>
            </li>
                    
      <li>
  
                          <a href="mailing-lists.html" title="Mailing Lists">
          <span class="none"></span>
        Mailing Lists</a>
            </li>
                    
      <li>
  
                          <a href="modules.html" title="Project Modules">
          <span class="none"></span>
        Project Modules</a>
            </li>
                    
      <li>
  
                          <a href="plugin-management.html" title="Plugin Management">
          <span class="none"></span>
        Plugin Management</a>
            </li>
                    
      <li>
  
                          <a href="plugins.html" title="Plugins">
          <span class="none"></span>
        Plugins</a>
            </li>
                    
      <li>
  
                          <a href="scm.html" title="Source Code Management">
          <span class="none"></span>
        Source Code Management</a>
            </li>
                    
      <li>
  
                          <a href="summary.html" title="Summary">
          <span class="none"></span>
        Summary</a>
            </li>
                    
      <li>
  
                          <a href="team.html" title="Team">
          <span class="none"></span>
        Team</a>
            </li>
              </ul>
        </li>
                                                                                                      
      <li>
  
                          <a href="project-reports.html" title="Project Reports">
          <span class="icon-chevron-right"></span>
        Project Reports</a>
                  </li>
            </ul>
              
                
          <hr />

           <div id="poweredBy">
                            <div class="clear"></div>
                            <div class="clear"></div>
                            <div class="clear"></div>
                            <div class="clear"></div>
                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
      </a>
                  </div>
          </div>
        </div>
        
                
        <div id="bodyColumn"  class="span10" >
                                  
            <section>
<h2><a name="Project_Information"></a>Project Information</h2>
<p>This document provides an overview of the various documents and links that are part of this project's general information. All of this content is automatically generated by <a class="externalLink" href="http://maven.apache.org">Maven</a> on behalf of the project.</p><section>
<h3><a name="Overview"></a>Overview</h3>
<table border="0" class="table table-striped">
<tr class="a">
<th>Document</th>
<th>Description</th></tr>
<tr class="b">
<td align="left"><a href="ci-management.html">CI Management</a></td>
<td align="left">This document lists the continuous integration management system of this project for building and testing code on a frequent, regular basis.</td></tr>
<tr class="a">
<td align="left"><a href="dependencies.html">Dependencies</a></td>
<td align="left">This document lists the project's dependencies and provides information on each dependency.</td></tr>
<tr class="b">
<td align="left"><a href="dependency-info.html">Dependency Information</a></td>
<td align="left">This document describes how to include this project as a dependency using various dependency management tools.</td></tr>
<tr class="a">
<td align="left"><a href="dependency-management.html">Dependency Management</a></td>
<td align="left">This document lists the dependencies that are defined through dependencyManagement.</td></tr>
<tr class="b">
<td align="left"><a href="distribution-management.html">Distribution Management</a></td>
<td align="left">This document provides informations on the distribution management of this project.</td></tr>
<tr class="a">
<td align="left"><a href="index.html">About</a></td>
<td align="left">Apache Shiro is a powerful and flexible open-source security framework that cleanly handles
        authentication, authorization, enterprise session management, single sign-on and cryptography services.</td></tr>
<tr class="b">
<td align="left"><a href="issue-management.html">Issue Management</a></td>
<td align="left">This document provides information on the issue management system used in this project.</td></tr>
<tr class="a">
<td align="left"><a href="licenses.html">Licenses</a></td>
<td align="left">This document lists the project license(s).</td></tr>
<tr class="b">
<td align="left"><a href="mailing-lists.html">Mailing Lists</a></td>
<td align="left">This document provides subscription and archive information for this project's mailing lists.</td></tr>
<tr class="a">
<td align="left"><a href="modules.html">Project Modules</a></td>
<td align="left">This document lists the modules (sub-projects) of this project.</td></tr>
<tr class="b">
<td align="left"><a href="plugin-management.html">Plugin Management</a></td>
<td align="left">This document lists the plugins that are defined through pluginManagement.</td></tr>
<tr class="a">
<td align="left"><a href="plugins.html">Plugins</a></td>
<td align="left">This document lists the build plugins and the report plugins used by this project.</td></tr>
<tr class="b">
<td align="left"><a href="scm.html">Source Code Management</a></td>
<td align="left">This document lists ways to access the online source repository.</td></tr>
<tr class="a">
<td align="left"><a href="summary.html">Summary</a></td>
<td align="left">This document lists other related information of this project</td></tr>
<tr class="b">
<td align="left"><a href="team.html">Team</a></td>
<td align="left">This document provides information on the members of this project. These are the individuals who have contributed to the project in one form or another.</td></tr></table></section></section>
                  </div>
            </div>
          </div>

    <hr/>

    <footer>
            <div class="container-fluid">
                      <div class="row-fluid">
                                      <p >Copyright &copy;                    2004&#x2013;2023
                        <a href="https://www.apache.org/">The Apache Software Foundation</a>.
            All rights reserved.    
      </p>
                </div>

        
                </div>
    </footer>
        </body>
</html>
