<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8.1 at 2020-03-23 
 | 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="20200323" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Shiro :: Core &#x2013; Tag List report</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 :: Core">
        Apache Shiro :: Core</a>
                    <span class="divider">/</span>
      </li>
            <li class="">
                    <a href="index.html" title="Apache Shiro :: Core">
        Apache Shiro :: Core</a>
                    <span class="divider">/</span>
      </li>
        <li class="active ">Tag List report</li>
        
              
                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2020-03-23</li>
              <li id="projectVersion" class="pull-right">
                    Version: 1.5.2
        </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">
          <span class="none"></span>
        Apache Shiro</a>
            </li>
                                        <li class="nav-header">Project Documentation</li>
                                                                                                                                                                                                                                                                                                                          
      <li>
  
                          <a href="project-info.html" title="Project Information">
          <span class="icon-chevron-right"></span>
        Project Information</a>
                  </li>
                                                                                                                                                                                                                            
      <li>
  
                          <a href="project-reports.html" title="Project Reports">
          <span class="icon-chevron-down"></span>
        Project Reports</a>
                    <ul class="nav nav-list">
                    
      <li>
  
                          <a href="apidocs/index.html" title="Javadoc">
          <span class="none"></span>
        Javadoc</a>
            </li>
                    
      <li>
  
                          <a href="xref/index.html" title="Source Xref">
          <span class="none"></span>
        Source Xref</a>
            </li>
                    
      <li>
  
                          <a href="xref-test/index.html" title="Test Source Xref">
          <span class="none"></span>
        Test Source Xref</a>
            </li>
                    
      <li>
  
                          <a href="cpd.html" title="CPD">
          <span class="none"></span>
        CPD</a>
            </li>
                    
      <li>
  
                          <a href="pmd.html" title="PMD">
          <span class="none"></span>
        PMD</a>
            </li>
                    
      <li>
  
                          <a href="surefire-report.html" title="Surefire Report">
          <span class="none"></span>
        Surefire Report</a>
            </li>
                    
      <li class="active">
  
            <a href="#"><span class="none"></span>Tag List</a>
          </li>
                    
      <li>
  
                          <a href="jdepend-report.html" title="JDepend">
          <span class="none"></span>
        JDepend</a>
            </li>
                    
      <li>
  
                          <a href="dashboard-report.html" title="DashBoard Report">
          <span class="none"></span>
        DashBoard Report</a>
            </li>
              </ul>
        </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" >
                                  
            <div class="section">
<h2><a name="Tag_List_Report"></a>Tag List Report</h2>
<p>The following document contains the listing of user tags found in the code. Below is the summary of the occurrences per tag.</p>
<table border="0" class="table table-striped">
<tr class="a">
<th>Tag Class</th>
<th>Total number of occurrences</th>
<th>Tag strings used by tag class</th></tr>
<tr class="b">
<td>Deprecated</td>
<td>0</td>
<td>@Deprecated</td></tr>
<tr class="a">
<td><a href="#tag_class_17">Todo Work</a></td>
<td>29</td>
<td>todo, FIXME</td></tr></table>
<p>Each tag is detailed below:</p>
<div class="section">
<h3><a name="Todo_Work"></a><a name="tag_class_17">Todo Work</a></h3>
<p><b>Number of occurrences found in the code: 29</b></p>
<table border="0" class="table table-striped">
<tr class="b">
<th>org.apache.shiro.authz.ModularRealmAuthorizerTest</th>
<th>Line</th></tr>
<tr class="a">
<td>no way to unset them, not sure if that is a valid use case, but this is conistent with the PermissionResolver logic // now just to be sure, unset them modRealmAuthz.setRolePermissionResolver( null ); for ( Realm realm : realms ) { assertNull( ((AuthorizingRealm)realm).getRolePermissionResolver() ); }</td>
<td><a href="./xref-test/org/apache/shiro/authz/ModularRealmAuthorizerTest.html#86">86</a></td></tr>
<tr class="b">
<th>org.apache.shiro.authz.permission.WildcardPermission</th>
<th>Line</th></tr>
<tr class="a">
<td>- JavaDoc methods</td>
<td><a href="./xref/org/apache/shiro/authz/permission/WildcardPermission.html#109">109</a></td></tr>
<tr class="b">
<th>org.apache.shiro.realm.AuthenticatingRealm</th>
<th>Line</th></tr>
<tr class="a">
<td>- complete JavaDoc</td>
<td><a href="./xref/org/apache/shiro/realm/AuthenticatingRealm.html#115">115</a></td></tr>
<tr class="b">
<th>org.apache.shiro.realm.AuthorizingRealm</th>
<th>Line</th></tr>
<tr class="a">
<td>- complete JavaDoc</td>
<td><a href="./xref/org/apache/shiro/realm/AuthorizingRealm.html#59">59</a></td></tr>
<tr class="b">
<th>org.apache.shiro.realm.AuthorizingRealmTest</th>
<th>Line</th></tr>
<tr class="a">
<td>- this could/should be expanded to be more robust end to end test for the AuthorizingRealm</td>
<td><a href="./xref-test/org/apache/shiro/realm/AuthorizingRealmTest.html#57">57</a></td></tr>
<tr class="b">
<th>org.apache.shiro.realm.CachingRealm</th>
<th>Line</th></tr>
<tr class="a">
<td>- complete JavaDoc</td>
<td><a href="./xref/org/apache/shiro/realm/CachingRealm.html#52">52</a></td></tr>
<tr class="b">
<th>org.apache.shiro.realm.SimpleAccountRealm</th>
<th>Line</th></tr>
<tr class="a">
<td>- complete JavaDoc</td>
<td><a href="./xref/org/apache/shiro/realm/SimpleAccountRealm.html#53">53</a></td></tr>
<tr class="b">
<th>org.apache.shiro.realm.activedirectory.ActiveDirectoryRealm</th>
<th>Line</th></tr>
<tr class="a">
<td>- complete JavaDoc</td>
<td><a href="./xref/org/apache/shiro/realm/activedirectory/ActiveDirectoryRealm.html#55">55</a></td></tr>
<tr class="b">
<th>org.apache.shiro.realm.activedirectory.ActiveDirectoryRealmTest</th>
<th>Line</th></tr>
<tr class="a">
<td>While the original incarnation of this test case does not actually test the heart of ActiveDirectoryRealm (no meaningful implemenation of queryForLdapAccount, etc) it obviously should. This version was intended to mimic my current usage scenario in an effort to debug upgrade issues which were not related to LDAP connectivity.</td>
<td><a href="./xref-test/org/apache/shiro/realm/activedirectory/ActiveDirectoryRealmTest.html#49">49</a></td></tr>
<tr class="b">
<th>org.apache.shiro.realm.jdbc.JdbcRealm</th>
<th>Line</th></tr>
<tr class="a">
<td>- complete JavaDoc</td>
<td><a href="./xref/org/apache/shiro/realm/jdbc/JdbcRealm.html#66">66</a></td></tr>
<tr class="b">
<td>separate password and hash from getPasswordForUser[0]</td>
<td><a href="./xref/org/apache/shiro/realm/jdbc/JdbcRealm.html#244">244</a></td></tr>
<tr class="a">
<th>org.apache.shiro.realm.ldap.AbstractLdapRealm</th>
<th>Line</th></tr>
<tr class="b">
<td>- complete JavaDoc</td>
<td><a href="./xref/org/apache/shiro/realm/ldap/AbstractLdapRealm.html#55">55</a></td></tr>
<tr class="a">
<th>org.apache.shiro.realm.ldap.DefaultLdapContextFactory</th>
<th>Line</th></tr>
<tr class="b">
<td>- complete JavaDoc</td>
<td><a href="./xref/org/apache/shiro/realm/ldap/DefaultLdapContextFactory.html#50">50</a></td></tr>
<tr class="a">
<th>org.apache.shiro.realm.text.PropertiesRealm</th>
<th>Line</th></tr>
<tr class="b">
<td>- complete JavaDoc</td>
<td><a href="./xref/org/apache/shiro/realm/text/PropertiesRealm.html#86">86</a></td></tr>
<tr class="a">
<td>- cleanup - this method shouldn't be necessary</td>
<td><a href="./xref/org/apache/shiro/realm/text/PropertiesRealm.html#157">157</a></td></tr>
<tr class="b">
<th>org.apache.shiro.realm.text.TextConfigurationRealm</th>
<th>Line</th></tr>
<tr class="a">
<td>- complete JavaDoc</td>
<td><a href="./xref/org/apache/shiro/realm/text/TextConfigurationRealm.html#53">53</a></td></tr>
<tr class="b">
<th>org.apache.shiro.session.mgt.AbstractSessionManager</th>
<th>Line</th></tr>
<tr class="a">
<td>- deprecate this class (see SHIRO-240): This is only here to make available a common attribute 'globalSessionTimeout' to subclasses, particularly to make it available to both AbstractNativeSessionManager and ServletContainerSessionManager subclass trees.  However, the ServletContainerSessionManager implementation does not use this value (see https://issues.apache.org/jira/browse/SHIRO-240 for why).  That means that only the Native session managers need a globalSessionTimeout property, making this class unnecessary.</td>
<td><a href="./xref/org/apache/shiro/session/mgt/AbstractSessionManager.html#30">30</a></td></tr>
<tr class="b">
<th>org.apache.shiro.session.mgt.AbstractValidatingSessionManager</th>
<th>Line</th></tr>
<tr class="a">
<td>- complete JavaDoc</td>
<td><a href="./xref/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.html#42">42</a></td></tr>
<tr class="b">
<th>org.apache.shiro.session.mgt.DefaultSessionManager</th>
<th>Line</th></tr>
<tr class="a">
<td>- complete JavaDoc</td>
<td><a href="./xref/org/apache/shiro/session/mgt/DefaultSessionManager.html#43">43</a></td></tr>
<tr class="b">
<td>- move SessionDAO up to AbstractValidatingSessionManager?</td>
<td><a href="./xref/org/apache/shiro/session/mgt/DefaultSessionManager.html#49">49</a></td></tr>
<tr class="a">
<th>org.apache.shiro.session.mgt.DelegatingSession</th>
<th>Line</th></tr>
<tr class="b">
<td>- complete JavaDoc</td>
<td><a href="./xref/org/apache/shiro/session/mgt/DelegatingSession.html#45">45</a></td></tr>
<tr class="a">
<th>org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler</th>
<th>Line</th></tr>
<tr class="b">
<td>- complete JavaDoc</td>
<td><a href="./xref/org/apache/shiro/session/mgt/ExecutorServiceSessionValidationScheduler.html#40">40</a></td></tr>
<tr class="a">
<td>Implement an integration test to test for jvm exit as part of the standalone example (so we don't have to change the unit test execution model for the core module)</td>
<td><a href="./xref/org/apache/shiro/session/mgt/ExecutorServiceSessionValidationScheduler.html#91">91</a></td></tr>
<tr class="b">
<th>org.apache.shiro.session.mgt.SimpleSession</th>
<th>Line</th></tr>
<tr class="a">
<td>- complete JavaDoc</td>
<td><a href="./xref/org/apache/shiro/session/mgt/SimpleSession.html#51">51</a></td></tr>
<tr class="b">
<td>- remove concrete reference to DefaultSessionManager</td>
<td><a href="./xref/org/apache/shiro/session/mgt/SimpleSession.html#96">96</a></td></tr>
<tr class="a">
<th>org.apache.shiro.subject.SimplePrincipalCollection</th>
<th>Line</th></tr>
<tr class="b">
<td>- complete JavaDoc</td>
<td><a href="./xref/org/apache/shiro/subject/SimplePrincipalCollection.html#46">46</a></td></tr>
<tr class="a">
<th>org.apache.shiro.util.AbstractFactory</th>
<th>Line</th></tr>
<tr class="b">
<td>- Class JavaDoc</td>
<td><a href="./xref/org/apache/shiro/util/AbstractFactory.html#22">22</a></td></tr>
<tr class="a">
<th>org.apache.shiro.util.AntPathMatcher</th>
<th>Line</th></tr>
<tr class="b">
<td>- complete JavaDoc</td>
<td><a href="./xref/org/apache/shiro/util/AntPathMatcher.html#62">62</a></td></tr>
<tr class="a">
<th>org.apache.shiro.util.CollectionUtils</th>
<th>Line</th></tr>
<tr class="b">
<td>- complete JavaDoc</td>
<td><a href="./xref/org/apache/shiro/util/CollectionUtils.html#38">38</a></td></tr></table></div></div>
                  </div>
            </div>
          </div>

    <hr/>

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

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