<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Deprecated List (Apache Shiro 1.11.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="Deprecated List (Apache Shiro 1.11.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>Package</li>
<li>Class</li>
<li>Use</li>
<li><a href="overview-tree.html">Tree</a></li>
<li class="navBarCell1Rev">Deprecated</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="Deprecated API" class="title">Deprecated API</h1>
<h2 title="Contents">Contents</h2>
<ul>
<li><a href="#interface">Interfaces</a></li>
<li><a href="#class">Classes</a></li>
<li><a href="#exception">Exceptions</a></li>
<li><a href="#field">Fields</a></li>
<li><a href="#method">Methods</a></li>
<li><a href="#constructor">Constructors</a></li>
</ul>
</div>
<div class="contentContainer"><a id="interface">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table class="deprecatedSummary">
<caption><span>Interfaces</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/web/servlet/HttpSessionContext.html" title="interface in org.apache.shiro.web.servlet">org.apache.shiro.web.servlet.HttpSessionContext</a></th>
<td class="colLast"></td>
</tr>
</tbody>
</table>
</li>
</ul>
<a id="class">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table class="deprecatedSummary">
<caption><span>Classes</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="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/authc/credential/Md2CredentialsMatcher.html" title="class in org.apache.shiro.authc.credential">org.apache.shiro.authc.credential.Md2CredentialsMatcher</a></th>
<td class="colLast">
<div class="deprecationComment">since 1.1 - use the HashedCredentialsMatcher directly and set its
             <a href="org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#setHashAlgorithmName(java.lang.String)"><code>hashAlgorithmName</code></a> property.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/authc/credential/Md5CredentialsMatcher.html" title="class in org.apache.shiro.authc.credential">org.apache.shiro.authc.credential.Md5CredentialsMatcher</a></th>
<td class="colLast">
<div class="deprecationComment">since 1.1 - use the HashedCredentialsMatcher directly and set its
             <a href="org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#setHashAlgorithmName(java.lang.String)"><code>hashAlgorithmName</code></a> property.</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/authc/credential/Sha1CredentialsMatcher.html" title="class in org.apache.shiro.authc.credential">org.apache.shiro.authc.credential.Sha1CredentialsMatcher</a></th>
<td class="colLast">
<div class="deprecationComment">since 1.1 - use the HashedCredentialsMatcher directly and set its
             <a href="org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#setHashAlgorithmName(java.lang.String)"><code>hashAlgorithmName</code></a> property.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/authc/credential/Sha256CredentialsMatcher.html" title="class in org.apache.shiro.authc.credential">org.apache.shiro.authc.credential.Sha256CredentialsMatcher</a></th>
<td class="colLast">
<div class="deprecationComment">since 1.1 - use the HashedCredentialsMatcher directly and set its
             <a href="org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#setHashAlgorithmName(java.lang.String)"><code>hashAlgorithmName</code></a> property.</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/authc/credential/Sha384CredentialsMatcher.html" title="class in org.apache.shiro.authc.credential">org.apache.shiro.authc.credential.Sha384CredentialsMatcher</a></th>
<td class="colLast">
<div class="deprecationComment">since 1.1 - use the HashedCredentialsMatcher directly and set its
             <a href="org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#setHashAlgorithmName(java.lang.String)"><code>hashAlgorithmName</code></a> property.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/authc/credential/Sha512CredentialsMatcher.html" title="class in org.apache.shiro.authc.credential">org.apache.shiro.authc.credential.Sha512CredentialsMatcher</a></th>
<td class="colLast">
<div class="deprecationComment">since 1.1 - use the HashedCredentialsMatcher directly and set its
             <a href="org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#setHashAlgorithmName(java.lang.String)"><code>hashAlgorithmName</code></a> property.</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/cas/CasFilter.html" title="class in org.apache.shiro.cas">org.apache.shiro.cas.CasFilter</a></th>
<td class="colLast">
<div class="deprecationComment">replaced with Shiro integration in <a href="https://github.com/bujiio/buji-pac4j">buji-pac4j</a>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/cas/CasRealm.html" title="class in org.apache.shiro.cas">org.apache.shiro.cas.CasRealm</a></th>
<td class="colLast">
<div class="deprecationComment">replaced with Shiro integration in <a href="https://github.com/bujiio/buji-pac4j">buji-pac4j</a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/cas/CasSubjectFactory.html" title="class in org.apache.shiro.cas">org.apache.shiro.cas.CasSubjectFactory</a></th>
<td class="colLast">
<div class="deprecationComment">replaced with Shiro integration in <a href="https://github.com/bujiio/buji-pac4j">buji-pac4j</a>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/cas/CasToken.html" title="class in org.apache.shiro.cas">org.apache.shiro.cas.CasToken</a></th>
<td class="colLast">
<div class="deprecationComment">replaced with Shiro integration in <a href="https://github.com/bujiio/buji-pac4j">buji-pac4j</a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/config/IniFactorySupport.html" title="class in org.apache.shiro.config">org.apache.shiro.config.IniFactorySupport</a></th>
<td class="colLast">
<div class="deprecationComment">use Shiro's <code>Environment</code> mechanisms instead.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/config/IniSecurityManagerFactory.html" title="class in org.apache.shiro.config">org.apache.shiro.config.IniSecurityManagerFactory</a></th>
<td class="colLast">
<div class="deprecationComment">use Shiro's <code>Environment</code> mechanisms instead.</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/crypto/hash/AbstractHash.html" title="class in org.apache.shiro.crypto.hash">org.apache.shiro.crypto.hash.AbstractHash</a></th>
<td class="colLast">
<div class="deprecationComment">in Shiro 1.1 in favor of using the concrete <a href="org/apache/shiro/crypto/hash/SimpleHash.html" title="class in org.apache.shiro.crypto.hash"><code>SimpleHash</code></a> implementation directly.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/io/XmlSerializer.html" title="class in org.apache.shiro.io">org.apache.shiro.io.XmlSerializer</a></th>
<td class="colLast">
<div class="deprecationComment">This class should not be used directly because of unsecure XMLEncoder/XMLDecoder usage.</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/realm/ldap/DefaultLdapContextFactory.html" title="class in org.apache.shiro.realm.ldap">org.apache.shiro.realm.ldap.DefaultLdapContextFactory</a></th>
<td class="colLast">
<div class="deprecationComment">replaced by the <a href="org/apache/shiro/realm/ldap/JndiLdapContextFactory.html" title="class in org.apache.shiro.realm.ldap"><code>JndiLdapContextFactory</code></a> implementation.  This implementation will be removed
 prior to Shiro 2.0</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/realm/ldap/JndiLdapRealm.html" title="class in org.apache.shiro.realm.ldap">org.apache.shiro.realm.ldap.JndiLdapRealm</a></th>
<td class="colLast">
<div class="deprecationComment">Renamed to <a href="org/apache/shiro/realm/ldap/DefaultLdapRealm.html" title="class in org.apache.shiro.realm.ldap"><code>DefaultLdapRealm</code></a>, this class will be removed prior to 2.0</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/util/JavaEnvironment.html" title="class in org.apache.shiro.util">org.apache.shiro.util.JavaEnvironment</a></th>
<td class="colLast">
<div class="deprecationComment">This class is no longer used in Shiro and will be removed in the next major version.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/web/config/WebIniSecurityManagerFactory.html" title="class in org.apache.shiro.web.config">org.apache.shiro.web.config.WebIniSecurityManagerFactory</a></th>
<td class="colLast">
<div class="deprecationComment">use Shiro's <code>Environment</code> mechanisms instead.</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/web/servlet/IniShiroFilter.html" title="class in org.apache.shiro.web.servlet">org.apache.shiro.web.servlet.IniShiroFilter</a></th>
<td class="colLast">
<div class="deprecationComment">in 1.2 in favor of using the <a href="org/apache/shiro/web/servlet/ShiroFilter.html" title="class in org.apache.shiro.web.servlet"><code>ShiroFilter</code></a></div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a id="exception">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table class="deprecatedSummary">
<caption><span>Exceptions</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Exceptions</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/cas/CasAuthenticationException.html" title="class in org.apache.shiro.cas">org.apache.shiro.cas.CasAuthenticationException</a></th>
<td class="colLast">
<div class="deprecationComment">replaced with Shiro integration in <a href="https://github.com/bujiio/buji-pac4j">buji-pac4j</a>.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a id="field">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table class="deprecatedSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/web/mgt/DefaultWebSecurityManager.html#HTTP_SESSION_MODE">org.apache.shiro.web.mgt.DefaultWebSecurityManager.HTTP_SESSION_MODE</a></th>
<td class="colLast"></td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/web/mgt/DefaultWebSecurityManager.html#NATIVE_SESSION_MODE">org.apache.shiro.web.mgt.DefaultWebSecurityManager.NATIVE_SESSION_MODE</a></th>
<td class="colLast"></td>
</tr>
</tbody>
</table>
</li>
</ul>
<a id="method">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table class="deprecatedSummary">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#getSalt(org.apache.shiro.authc.AuthenticationToken)">org.apache.shiro.authc.credential.HashedCredentialsMatcher.getSalt&#8203;(AuthenticationToken)</a></th>
<td class="colLast">
<div class="deprecationComment">since Shiro 1.1.  Hash salting is now expected to be based on if the <a href="org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc"><code>AuthenticationInfo</code></a>
             returned from the <code>Realm</code> is a <a href="org/apache/shiro/authc/SaltedAuthenticationInfo.html" title="interface in org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a> instance and its
             <a href="org/apache/shiro/authc/SaltedAuthenticationInfo.html#getCredentialsSalt()"><code>getCredentialsSalt()</code></a> method returns a non-null value.
             This method and the 1.0 behavior still exists for backwards compatibility if the <code>Realm</code> does not return
             <code>SaltedAuthenticationInfo</code> instances, but <b>it is highly recommended that <code>Realm</code> implementations
             that support hashed credentials start returning <a href="org/apache/shiro/authc/SaltedAuthenticationInfo.html" title="interface in org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a>
             instances as soon as possible</b>.<p/>
             This is because salts should always be obtained from the stored account information and
             never be interpreted based on user/Subject-entered data.  User-entered data is easier to compromise for
             attackers, whereas account-unique (and secure randomly-generated) salts never disseminated to the end-user
             are almost impossible to break.  This method will be removed in Shiro 2.0.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#isHashSalted()">org.apache.shiro.authc.credential.HashedCredentialsMatcher.isHashSalted()</a></th>
<td class="colLast">
<div class="deprecationComment">since Shiro 1.1.  Hash salting is now expected to be based on if the <a href="org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc"><code>AuthenticationInfo</code></a>
             returned from the <code>Realm</code> is a <a href="org/apache/shiro/authc/SaltedAuthenticationInfo.html" title="interface in org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a> instance and its
             <a href="org/apache/shiro/authc/SaltedAuthenticationInfo.html#getCredentialsSalt()"><code>getCredentialsSalt()</code></a> method returns a non-null value.
             This method and the 1.0 behavior still exists for backwards compatibility if the <code>Realm</code> does not return
             <code>SaltedAuthenticationInfo</code> instances, but <b>it is highly recommended that <code>Realm</code> implementations
             that support hashed credentials start returning <a href="org/apache/shiro/authc/SaltedAuthenticationInfo.html" title="interface in org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a>
             instances as soon as possible</b>.
             <p/>
             This is because salts should always be obtained from the stored account information and
             never be interpreted based on user/Subject-entered data.  User-entered data is easier to compromise for
             attackers, whereas account-unique (and secure randomly-generated) salts never disseminated to the end-user
             are almost impossible to break.  This method will be removed in Shiro 2.0.</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#setHashSalted(boolean)">org.apache.shiro.authc.credential.HashedCredentialsMatcher.setHashSalted&#8203;(boolean)</a></th>
<td class="colLast">
<div class="deprecationComment">since Shiro 1.1.  Hash salting is now expected to be based on if the <a href="org/apache/shiro/authc/AuthenticationInfo.html" title="interface in org.apache.shiro.authc"><code>AuthenticationInfo</code></a>
             returned from the <code>Realm</code> is a <a href="org/apache/shiro/authc/SaltedAuthenticationInfo.html" title="interface in org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a> instance and its
             <a href="org/apache/shiro/authc/SaltedAuthenticationInfo.html#getCredentialsSalt()"><code>getCredentialsSalt()</code></a> method returns a non-null value.
             This method and the 1.0 behavior still exists for backwards compatibility if the <code>Realm</code> does not return
             <code>SaltedAuthenticationInfo</code> instances, but <b>it is highly recommended that <code>Realm</code> implementations
             that support hashed credentials start returning <a href="org/apache/shiro/authc/SaltedAuthenticationInfo.html" title="interface in org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a>
             instances as soon as possible</b>.
             <p/>
             This is because salts should always be obtained from the stored account information and
             never be interpreted based on user/Subject-entered data.  User-entered data is easier to compromise for
             attackers, whereas account-unique (and secure randomly-generated) salts never disseminated to the end-user
             are almost impossible to break.  This method will be removed in Shiro 2.0.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/guice/web/ShiroWebModule.html#addFilterChain(java.lang.String,com.google.inject.Key...)">org.apache.shiro.guice.web.ShiroWebModule.addFilterChain&#8203;(String, Key&lt;? extends Filter&gt;...)</a></th>
<td class="colLast"></td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/guice/web/ShiroWebModule.html#config(com.google.inject.Key,java.lang.String)">org.apache.shiro.guice.web.ShiroWebModule.config&#8203;(Key&lt;T&gt;, String)</a></th>
<td class="colLast"></td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/mgt/DefaultSecurityManager.html#bind(org.apache.shiro.subject.Subject)">org.apache.shiro.mgt.DefaultSecurityManager.bind&#8203;(Subject)</a></th>
<td class="colLast">
<div class="deprecationComment">in favor of <a href="org/apache/shiro/mgt/DefaultSecurityManager.html#save(org.apache.shiro.subject.Subject)"><code>save(subject)</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/mgt/DefaultSecurityManager.html#unbind(org.apache.shiro.subject.Subject)">org.apache.shiro.mgt.DefaultSecurityManager.unbind&#8203;(Subject)</a></th>
<td class="colLast">
<div class="deprecationComment">in Shiro 1.2 in favor of <a href="org/apache/shiro/mgt/DefaultSecurityManager.html#delete(org.apache.shiro.subject.Subject)"><code>DefaultSecurityManager.delete(org.apache.shiro.subject.Subject)</code></a></div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/mgt/DefaultSubjectFactory.html#newSubjectInstance(org.apache.shiro.subject.PrincipalCollection,boolean,java.lang.String,org.apache.shiro.session.Session,org.apache.shiro.mgt.SecurityManager)">org.apache.shiro.mgt.DefaultSubjectFactory.newSubjectInstance&#8203;(PrincipalCollection, boolean, String, Session, SecurityManager)</a></th>
<td class="colLast">
<div class="deprecationComment">since 1.2 - override <a href="org/apache/shiro/mgt/DefaultSubjectFactory.html#createSubject(org.apache.shiro.subject.SubjectContext)"><code>DefaultSubjectFactory.createSubject(org.apache.shiro.subject.SubjectContext)</code></a> directly if you
             need to instantiate a custom <a href="org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject"><code>Subject</code></a> class.</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/realm/ldap/DefaultLdapContextFactory.html#getLdapContext(java.lang.String,java.lang.String)">org.apache.shiro.realm.ldap.DefaultLdapContextFactory.getLdapContext&#8203;(String, String)</a></th>
<td class="colLast">
<div class="deprecationComment">the <a href="org/apache/shiro/realm/ldap/DefaultLdapContextFactory.html#getLdapContext(java.lang.Object,java.lang.Object)"><code>DefaultLdapContextFactory.getLdapContext(Object, Object)</code></a> method should be used in all cases to ensure more than
             String principals and credentials can be used.  Shiro no longer calls this method - it will be
             removed before the 2.0 release.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/realm/ldap/DefaultLdapContextFactory.html#setSearchBase(java.lang.String)">org.apache.shiro.realm.ldap.DefaultLdapContextFactory.setSearchBase&#8203;(String)</a></th>
<td class="colLast">
<div class="deprecationComment">this attribute existed, but was never used in Shiro 1.x.  It will be removed prior to Shiro 2.0.</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/realm/ldap/JndiLdapContextFactory.html#getLdapContext(java.lang.String,java.lang.String)">org.apache.shiro.realm.ldap.JndiLdapContextFactory.getLdapContext&#8203;(String, String)</a></th>
<td class="colLast">
<div class="deprecationComment">the <a href="org/apache/shiro/realm/ldap/JndiLdapContextFactory.html#getLdapContext(java.lang.Object,java.lang.Object)"><code>JndiLdapContextFactory.getLdapContext(Object, Object)</code></a> method should be used in all cases to ensure more than
             String principals and credentials can be used.  Shiro no longer calls this method - it will be
             removed before the 2.0 release.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/realm/ldap/LdapContextFactory.html#getLdapContext(java.lang.String,java.lang.String)">org.apache.shiro.realm.ldap.LdapContextFactory.getLdapContext&#8203;(String, String)</a></th>
<td class="colLast">
<div class="deprecationComment">the <a href="org/apache/shiro/realm/ldap/LdapContextFactory.html#getLdapContext(java.lang.Object,java.lang.Object)"><code>LdapContextFactory.getLdapContext(Object, Object)</code></a> method should be used in all cases to ensure more than
 String principals and credentials can be used.</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/util/CollectionUtils.html#isEmpty(org.apache.shiro.subject.PrincipalCollection)">org.apache.shiro.util.CollectionUtils.isEmpty&#8203;(PrincipalCollection)</a></th>
<td class="colLast">
<div class="deprecationComment">Use PrincipalCollection.isEmpty() directly.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/web/env/EnvironmentLoader.html#determineWebEnvironmentClass(javax.servlet.ServletContext)">org.apache.shiro.web.env.EnvironmentLoader.determineWebEnvironmentClass&#8203;(ServletContext)</a></th>
<td class="colLast">
<div class="deprecationComment">This method is not longer used by Shiro, and will be removed in future versions,
 use <a href="org/apache/shiro/web/env/EnvironmentLoader.html#determineWebEnvironment(javax.servlet.ServletContext)"><code>EnvironmentLoader.determineWebEnvironment(ServletContext)</code></a> or <a href="org/apache/shiro/web/env/EnvironmentLoader.html#determineWebEnvironment(javax.servlet.ServletContext)"><code>EnvironmentLoader.determineWebEnvironment(ServletContext)</code></a></div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/web/mgt/DefaultWebSecurityManager.html#getSessionMode()">org.apache.shiro.web.mgt.DefaultWebSecurityManager.getSessionMode()</a></th>
<td class="colLast"></td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/web/mgt/DefaultWebSecurityManager.html#setSessionMode(java.lang.String)">org.apache.shiro.web.mgt.DefaultWebSecurityManager.setSessionMode&#8203;(String)</a></th>
<td class="colLast">
<div class="deprecationComment">since 1.2</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/web/mgt/DefaultWebSubjectFactory.html#newSubjectInstance(org.apache.shiro.subject.PrincipalCollection,boolean,java.lang.String,org.apache.shiro.session.Session,javax.servlet.ServletRequest,javax.servlet.ServletResponse,org.apache.shiro.mgt.SecurityManager)">org.apache.shiro.web.mgt.DefaultWebSubjectFactory.newSubjectInstance&#8203;(PrincipalCollection, boolean, String, Session, ServletRequest, ServletResponse, SecurityManager)</a></th>
<td class="colLast">
<div class="deprecationComment">since 1.2 - override <a href="org/apache/shiro/web/mgt/DefaultWebSubjectFactory.html#createSubject(org.apache.shiro.subject.SubjectContext)"><code>DefaultWebSubjectFactory.createSubject(org.apache.shiro.subject.SubjectContext)</code></a> directly if you
             need to instantiate a custom <a href="org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject"><code>Subject</code></a> class.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/web/servlet/OncePerRequestFilter.html#shouldNotFilter(javax.servlet.ServletRequest)">org.apache.shiro.web.servlet.OncePerRequestFilter.shouldNotFilter&#8203;(ServletRequest)</a></th>
<td class="colLast">
<div class="deprecationComment">in favor of overriding <a href="org/apache/shiro/web/servlet/OncePerRequestFilter.html#isEnabled(javax.servlet.ServletRequest,javax.servlet.ServletResponse)"><code>OncePerRequestFilter.isEnabled(javax.servlet.ServletRequest, javax.servlet.ServletResponse)</code></a>
 for custom behavior.  This method will be removed in Shiro 2.0.</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/web/util/WebUtils.html#getRequestUri(javax.servlet.http.HttpServletRequest)">org.apache.shiro.web.util.WebUtils.getRequestUri&#8203;(HttpServletRequest)</a></th>
<td class="colLast">
<div class="deprecationComment">use getPathWithinApplication() to get the path minus the context path, or call HttpServletRequest.getRequestURI() directly from your code.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a id="constructor">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table class="deprecatedSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/shiro/UnavailableSecurityManagerException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">org.apache.shiro.UnavailableSecurityManagerException&#8203;(String, Throwable)</a></th>
<td class="colLast">
<div class="deprecationComment">This constructor is NOT used by Shiro directly, and will be removed in the future.</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>Package</li>
<li>Class</li>
<li>Use</li>
<li><a href="overview-tree.html">Tree</a></li>
<li class="navBarCell1Rev">Deprecated</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;2023 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>
