Author: remm Date: Fri Jun 9 07:47:37 2023 New Revision: 1910321 URL: http://svn.apache.org/viewvc?rev=1910321&view=rev Log: Docs update for 9.0.76 part 2
Added: tomcat/site/trunk/docs/tomcat-9.0-doc/annotationapi/jquery/jquery-3.6.1.min.js tomcat/site/trunk/docs/tomcat-9.0-doc/api/jquery/jquery-3.6.1.min.js tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/core/StandardVirtualThreadExecutor.html tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/filters/RateLimitFilter.html tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/NetMaskSet.html tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/TimeBucketCounter.html tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/valves/JsonAccessLogValve.CharElement.html tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/tomcat/util/compat/Jre21Compat.html tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/tomcat/util/http/parser/Priority.html tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/tomcat/util/http/parser/StructuredField.html tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/tomcat/util/threads/VirtualThreadExecutor.html tomcat/site/trunk/docs/tomcat-9.0-doc/elapi/jquery/jquery-3.6.1.min.js tomcat/site/trunk/docs/tomcat-9.0-doc/jaspicapi/jquery/jquery-3.6.1.min.js tomcat/site/trunk/docs/tomcat-9.0-doc/jspapi/jquery/jquery-3.6.1.min.js tomcat/site/trunk/docs/tomcat-9.0-doc/servletapi/jquery/jquery-3.6.1.min.js tomcat/site/trunk/docs/tomcat-9.0-doc/websocketapi/jquery/jquery-3.6.1.min.js Removed: tomcat/site/trunk/docs/tomcat-9.0-doc/annotationapi/jquery/jquery-3.6.0.min.js tomcat/site/trunk/docs/tomcat-9.0-doc/api/jquery/jquery-3.6.0.min.js tomcat/site/trunk/docs/tomcat-9.0-doc/elapi/jquery/jquery-3.6.0.min.js tomcat/site/trunk/docs/tomcat-9.0-doc/jaspicapi/jquery/jquery-3.6.0.min.js tomcat/site/trunk/docs/tomcat-9.0-doc/jspapi/jquery/jquery-3.6.0.min.js tomcat/site/trunk/docs/tomcat-9.0-doc/servletapi/jquery/jquery-3.6.0.min.js tomcat/site/trunk/docs/tomcat-9.0-doc/websocketapi/jquery/jquery-3.6.0.min.js Added: tomcat/site/trunk/docs/tomcat-9.0-doc/annotationapi/jquery/jquery-3.6.1.min.js URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-9.0-doc/annotationapi/jquery/jquery-3.6.1.min.js?rev=1910321&view=auto ============================================================================== --- tomcat/site/trunk/docs/tomcat-9.0-doc/annotationapi/jquery/jquery-3.6.1.min.js (added) +++ tomcat/site/trunk/docs/tomcat-9.0-doc/annotationapi/jquery/jquery-3.6.1.min.js Fri Jun 9 07:47:37 2023 @@ -0,0 +1,2 @@ +/*! jQuery v3.6.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ [... 2 lines stripped ...] Added: tomcat/site/trunk/docs/tomcat-9.0-doc/api/jquery/jquery-3.6.1.min.js URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-9.0-doc/api/jquery/jquery-3.6.1.min.js?rev=1910321&view=auto ============================================================================== --- tomcat/site/trunk/docs/tomcat-9.0-doc/api/jquery/jquery-3.6.1.min.js (added) +++ tomcat/site/trunk/docs/tomcat-9.0-doc/api/jquery/jquery-3.6.1.min.js Fri Jun 9 07:47:37 2023 @@ -0,0 +1,2 @@ +/*! jQuery v3.6.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ [... 2 lines stripped ...] Added: tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/core/StandardVirtualThreadExecutor.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/core/StandardVirtualThreadExecutor.html?rev=1910321&view=auto ============================================================================== --- tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/core/StandardVirtualThreadExecutor.html (added) +++ tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/core/StandardVirtualThreadExecutor.html Fri Jun 9 07:47:37 2023 @@ -0,0 +1,628 @@ +<!DOCTYPE HTML> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc --> +<title>StandardVirtualThreadExecutor (Apache Tomcat 9.0.76 API Documentation)</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.min.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.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.6.1.min.js"></script> +<script type="text/javascript" src="../../../../jquery/jquery-ui.min.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="StandardVirtualThreadExecutor (Apache Tomcat 9.0.76 API Documentation)"; + } + } + catch(err) { + } +//--> +var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +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"> +<!-- ========= 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="navBarCell1Rev">Class</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 class="aboutLanguage"><b>Apache Tomcat 9.0.76</b></div> +</div> +<div class="subNav"> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses.html">All 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> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a id="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +</div> +<div class="navPadding"> </div> +<script type="text/javascript"><!-- +$('.navPadding').css('padding-top', $('.fixedNav').css("height")); +//--> +</script> +</nav> +</header> +<!-- ======== START OF CLASS DATA ======== --> +<main role="main"> +<div class="header"> +<div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">org.apache.catalina.core</a></div> +<h2 title="Class StandardVirtualThreadExecutor" class="title">Class StandardVirtualThreadExecutor</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li>java.lang.Object</li> +<li> +<ul class="inheritance"> +<li><a href="../util/LifecycleBase.html" title="class in org.apache.catalina.util">org.apache.catalina.util.LifecycleBase</a></li> +<li> +<ul class="inheritance"> +<li><a href="../util/LifecycleMBeanBase.html" title="class in org.apache.catalina.util">org.apache.catalina.util.LifecycleMBeanBase</a></li> +<li> +<ul class="inheritance"> +<li>org.apache.catalina.core.StandardVirtualThreadExecutor</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><code>java.util.concurrent.Executor</code>, <code>javax.management.MBeanRegistration</code>, <code><a href="../Executor.html" title="interface in org.apache.catalina">Executor</a></code>, <code><a href="../JmxEnabled.html" title="interface in org.apache.catalina">JmxEnabled</a></code>, <code><a href="../Lifecycle.html" title="interface in org.apache.catalina">Lifecycle</a></code></dd> +</dl> +<hr> +<pre>public class <span class="typeNameLabel">StandardVirtualThreadExecutor</span> +extends <a href="../util/LifecycleMBeanBase.html" title="class in org.apache.catalina.util">LifecycleMBeanBase</a> +implements <a href="../Executor.html" title="interface in org.apache.catalina">Executor</a></pre> +<div class="block">An executor that uses a new virtual thread for each task.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<section> +<ul class="blockList"> +<li class="blockList"><a id="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<ul class="blockList"> +<li class="blockList"><a id="nested.classes.inherited.from.class.org.apache.catalina.Lifecycle"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from interface org.apache.catalina.<a href="../Lifecycle.html" title="interface in org.apache.catalina">Lifecycle</a></h3> +<code><a href="../Lifecycle.SingleUse.html" title="interface in org.apache.catalina">Lifecycle.SingleUse</a></code></li> +</ul> +</li> +</ul> +</section> +<!-- =========== FIELD SUMMARY =========== --> +<section> +<ul class="blockList"> +<li class="blockList"><a id="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<ul class="blockList"> +<li class="blockList"><a id="fields.inherited.from.class.org.apache.catalina.util.LifecycleMBeanBase"> +<!-- --> +</a> +<h3>Fields inherited from class org.apache.catalina.util.<a href="../util/LifecycleMBeanBase.html" title="class in org.apache.catalina.util">LifecycleMBeanBase</a></h3> +<code><a href="../util/LifecycleMBeanBase.html#mserver">mserver</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a id="fields.inherited.from.class.org.apache.catalina.Lifecycle"> +<!-- --> +</a> +<h3>Fields inherited from interface org.apache.catalina.<a href="../Lifecycle.html" title="interface in org.apache.catalina">Lifecycle</a></h3> +<code><a href="../Lifecycle.html#AFTER_DESTROY_EVENT">AFTER_DESTROY_EVENT</a>, <a href="../Lifecycle.html#AFTER_INIT_EVENT">AFTER_INIT_EVENT</a>, <a href="../Lifecycle.html#AFTER_START_EVENT">AFTER_START_EVENT</a>, <a href="../Lifecycle.html#AFTER_STOP_EVENT">AFTER_STOP_EVENT</a>, <a href="../Lifecycle.html#BEFORE_DESTROY_EVENT">BEFORE_DESTROY_EVENT</a>, <a href="../Lifecycle.html#BEFORE_INIT_EVENT">BEFORE_INIT_EVENT</a>, <a href="../Lifecycle.html#BEFORE_START_EVENT">BEFORE_START_EVENT</a>, <a href="../Lifecycle.html#BEFORE_STOP_EVENT">BEFORE_STOP_EVENT</a>, <a href="../Lifecycle.html#CONFIGURE_START_EVENT">CONFIGURE_START_EVENT</a>, <a href="../Lifecycle.html#CONFIGURE_STOP_EVENT">CONFIGURE_STOP_EVENT</a>, <a href="../Lifecycle.html#PERIODIC_EVENT">PERIODIC_EVENT</a>, <a href="../Lifecycle.html#START_EVENT">START_EVENT</a>, <a href="../Lifecycle.html#STOP_EVENT">STOP_EVENT</a></code></li> +</ul> +</li> +</ul> +</section> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<section> +<ul class="blockList"> +<li class="blockList"><a id="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Constructor</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tr class="altColor"> +<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">StandardVirtualThreadExecutor</a></span>()</code></th> +<td class="colLast"> </td> +</tr> +</table> +</li> +</ul> +</section> +<!-- ========== METHOD SUMMARY =========== --> +<section> +<ul class="blockList"> +<li class="blockList"><a id="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colSecond" scope="col">Method</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#execute(java.lang.Runnable)">execute</a></span>​(java.lang.Runnable command)</code></th> +<td class="colLast"> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#execute(java.lang.Runnable,long,java.util.concurrent.TimeUnit)">execute</a></span>​(java.lang.Runnable command, + long timeout, + java.util.concurrent.TimeUnit unit)</code></th> +<td class="colLast"> +<div class="block">Executes the given command at some time in the future.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>protected java.lang.String</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDomainInternal()">getDomainInternal</a></span>()</code></th> +<td class="colLast"> +<div class="block">Method implemented by sub-classes to identify the domain in which MBeans + should be registered.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>java.lang.String</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getName()">getName</a></span>()</code></th> +<td class="colLast"> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>java.lang.String</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNamePrefix()">getNamePrefix</a></span>()</code></th> +<td class="colLast"> </td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>protected java.lang.String</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getObjectNameKeyProperties()">getObjectNameKeyProperties</a></span>()</code></th> +<td class="colLast"> +<div class="block">Allow sub-classes to specify the key properties component of the + <code>ObjectName</code> that will be used to register this component.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>protected void</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#initInternal()">initInternal</a></span>()</code></th> +<td class="colLast"> +<div class="block">Sub-classes wishing to perform additional initialization should override + this method, ensuring that super.initInternal() is the first call in the + overriding method.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setName(java.lang.String)">setName</a></span>​(java.lang.String name)</code></th> +<td class="colLast"> </td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>void</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setNamePrefix(java.lang.String)">setNamePrefix</a></span>​(java.lang.String namePrefix)</code></th> +<td class="colLast"> </td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>protected void</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#startInternal()">startInternal</a></span>()</code></th> +<td class="colLast"> +<div class="block">Sub-classes must ensure that the state is changed to + <a href="../LifecycleState.html#STARTING"><code>LifecycleState.STARTING</code></a> during the execution of this method.</div> +</td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code>protected void</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stopInternal()">stopInternal</a></span>()</code></th> +<td class="colLast"> +<div class="block">Sub-classes must ensure that the state is changed to + <a href="../LifecycleState.html#STOPPING"><code>LifecycleState.STOPPING</code></a> during the execution of this method.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a id="methods.inherited.from.class.org.apache.catalina.util.LifecycleMBeanBase"> +<!-- --> +</a> +<h3>Methods inherited from class org.apache.catalina.util.<a href="../util/LifecycleMBeanBase.html" title="class in org.apache.catalina.util">LifecycleMBeanBase</a></h3> +<code><a href="../util/LifecycleMBeanBase.html#destroyInternal()">destroyInternal</a>, <a href="../util/LifecycleMBeanBase.html#getDomain()">getDomain</a>, <a href="../util/LifecycleMBeanBase.html#getObjectName()">getObjectName</a>, <a href="../util/LifecycleMBeanBase.html#postDeregister()">postDeregister</a>, <a href="../util/LifecycleMBeanBase.html#postRegister(java.lang.Boolean)">postRegister</a>, <a href="../util/LifecycleMBeanBase.html#preDeregister()">preDeregister</a>, <a href="../util/LifecycleMBeanBase.html#preRegister(javax.management.MBeanServer,javax.management.ObjectName)">preRegister</a>, <a href="../util/LifecycleMBeanBase.html#register(java.lang.Object,java.lang.String)">register</a>, <a href="../util/LifecycleMBeanBase.html#setDomain(java.lang.String)">setDomain</a>, <a href="../util/LifecycleMBeanBase.html#unregister(java.lang.String)">unregister</a>, <a href="../util/LifecycleMBeanBase.html#unregister(javax.management.ObjectName)">unregister</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a id="methods.inherited.from.class.org.apache.catalina.util.LifecycleBase"> +<!-- --> +</a> +<h3>Methods inherited from class org.apache.catalina.util.<a href="../util/LifecycleBase.html" title="class in org.apache.catalina.util">LifecycleBase</a></h3> +<code><a href="../util/LifecycleBase.html#addLifecycleListener(org.apache.catalina.LifecycleListener)">addLifecycleListener</a>, <a href="../util/LifecycleBase.html#destroy()">destroy</a>, <a href="../util/LifecycleBase.html#findLifecycleListeners()">findLifecycleListeners</a>, <a href="../util/LifecycleBase.html#fireLifecycleEvent(java.lang.String,java.lang.Object)">fireLifecycleEvent</a>, <a href="../util/LifecycleBase.html#getState()">getState</a>, <a href="../util/LifecycleBase.html#getStateName()">getStateName</a>, <a href="../util/LifecycleBase.html#getThrowOnFailure()">getThrowOnFailure</a>, <a href="../util/LifecycleBase.html#init()">init</a>, <a href="../util/LifecycleBase.html#removeLifecycleListener(org.apache.catalina.LifecycleListener)">removeLifecycleListener</a>, <a href="../util/LifecycleBase.html#setState(org.apache.catalina.LifecycleState)">setState</a>, <a href="../util/LifecycleBase.html#setState(org.apache.catalina.LifecycleState,java.lang.Object)">setState</a>, <a href="../util/LifecycleBase.html#setThrowOnFailure(boolean)">setThrowOnFailure</a>, <a href="../util/LifecycleBase.html#start()">start</a>, <a href="../util/LifecycleBase.html#stop()">stop</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.Object</h3> +<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a id="methods.inherited.from.class.org.apache.catalina.Lifecycle"> +<!-- --> +</a> +<h3>Methods inherited from interface org.apache.catalina.<a href="../Lifecycle.html" title="interface in org.apache.catalina">Lifecycle</a></h3> +<code><a href="../Lifecycle.html#addLifecycleListener(org.apache.catalina.LifecycleListener)">addLifecycleListener</a>, <a href="../Lifecycle.html#destroy()">destroy</a>, <a href="../Lifecycle.html#findLifecycleListeners()">findLifecycleListeners</a>, <a href="../Lifecycle.html#getState()">getState</a>, <a href="../Lifecycle.html#getStateName()">getStateName</a>, <a href="../Lifecycle.html#init()">init</a>, <a href="../Lifecycle.html#removeLifecycleListener(org.apache.catalina.LifecycleListener)">removeLifecycleListener</a>, <a href="../Lifecycle.html#start()">start</a>, <a href="../Lifecycle.html#stop()">stop</a></code></li> +</ul> +</li> +</ul> +</section> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<section> +<ul class="blockList"> +<li class="blockList"><a id="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a id="<init>()"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>StandardVirtualThreadExecutor</h4> +<pre>public StandardVirtualThreadExecutor()</pre> +</li> +</ul> +</li> +</ul> +</section> +<!-- ============ METHOD DETAIL ========== --> +<section> +<ul class="blockList"> +<li class="blockList"><a id="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a id="setName(java.lang.String)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setName</h4> +<pre class="methodSignature">public void setName​(java.lang.String name)</pre> +</li> +</ul> +<a id="getName()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getName</h4> +<pre class="methodSignature">public java.lang.String getName()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../Executor.html#getName()">getName</a></code> in interface <code><a href="../Executor.html" title="interface in org.apache.catalina">Executor</a></code></dd> +</dl> +</li> +</ul> +<a id="getNamePrefix()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNamePrefix</h4> +<pre class="methodSignature">public java.lang.String getNamePrefix()</pre> +</li> +</ul> +<a id="setNamePrefix(java.lang.String)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setNamePrefix</h4> +<pre class="methodSignature">public void setNamePrefix​(java.lang.String namePrefix)</pre> +</li> +</ul> +<a id="execute(java.lang.Runnable)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>execute</h4> +<pre class="methodSignature">public void execute​(java.lang.Runnable command)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code>execute</code> in interface <code>java.util.concurrent.Executor</code></dd> +</dl> +</li> +</ul> +<a id="execute(java.lang.Runnable,long,java.util.concurrent.TimeUnit)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>execute</h4> +<pre class="methodSignature">public void execute​(java.lang.Runnable command, + long timeout, + java.util.concurrent.TimeUnit unit)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../Executor.html#execute(java.lang.Runnable,long,java.util.concurrent.TimeUnit)">Executor</a></code></span></div> +<div class="block">Executes the given command at some time in the future. The command + may execute in a new thread, in a pooled thread, or in the calling + thread, at the discretion of the <code>Executor</code> implementation. + If no threads are available, it will be added to the work queue. + If the work queue is full, the system will wait for the specified + time until it throws a RejectedExecutionException</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../Executor.html#execute(java.lang.Runnable,long,java.util.concurrent.TimeUnit)">execute</a></code> in interface <code><a href="../Executor.html" title="interface in org.apache.catalina">Executor</a></code></dd> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>command</code> - the runnable task</dd> +<dd><code>timeout</code> - the length of time to wait for the task to complete</dd> +<dd><code>unit</code> - the units in which timeout is expressed</dd> +</dl> +</li> +</ul> +<a id="initInternal()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>initInternal</h4> +<pre class="methodSignature">protected void initInternal() + throws <a href="../LifecycleException.html" title="class in org.apache.catalina">LifecycleException</a></pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../util/LifecycleMBeanBase.html#initInternal()">LifecycleMBeanBase</a></code></span></div> +<div class="block">Sub-classes wishing to perform additional initialization should override + this method, ensuring that super.initInternal() is the first call in the + overriding method.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="../util/LifecycleMBeanBase.html#initInternal()">initInternal</a></code> in class <code><a href="../util/LifecycleMBeanBase.html" title="class in org.apache.catalina.util">LifecycleMBeanBase</a></code></dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="../LifecycleException.html" title="class in org.apache.catalina">LifecycleException</a></code> - If the initialisation fails</dd> +</dl> +</li> +</ul> +<a id="startInternal()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startInternal</h4> +<pre class="methodSignature">protected void startInternal() + throws <a href="../LifecycleException.html" title="class in org.apache.catalina">LifecycleException</a></pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../util/LifecycleBase.html#startInternal()">LifecycleBase</a></code></span></div> +<div class="block">Sub-classes must ensure that the state is changed to + <a href="../LifecycleState.html#STARTING"><code>LifecycleState.STARTING</code></a> during the execution of this method. + Changing state will trigger the <a href="../Lifecycle.html#START_EVENT"><code>Lifecycle.START_EVENT</code></a> event. + + If a component fails to start it may either throw a + <a href="../LifecycleException.html" title="class in org.apache.catalina"><code>LifecycleException</code></a> which will cause it's parent to fail to start + or it can place itself in the error state in which case <a href="../util/LifecycleBase.html#stop()"><code>LifecycleBase.stop()</code></a> + will be called on the failed component but the parent component will + continue to start normally.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../util/LifecycleBase.html#startInternal()">startInternal</a></code> in class <code><a href="../util/LifecycleBase.html" title="class in org.apache.catalina.util">LifecycleBase</a></code></dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="../LifecycleException.html" title="class in org.apache.catalina">LifecycleException</a></code> - Start error occurred</dd> +</dl> +</li> +</ul> +<a id="stopInternal()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopInternal</h4> +<pre class="methodSignature">protected void stopInternal() + throws <a href="../LifecycleException.html" title="class in org.apache.catalina">LifecycleException</a></pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../util/LifecycleBase.html#stopInternal()">LifecycleBase</a></code></span></div> +<div class="block">Sub-classes must ensure that the state is changed to + <a href="../LifecycleState.html#STOPPING"><code>LifecycleState.STOPPING</code></a> during the execution of this method. + Changing state will trigger the <a href="../Lifecycle.html#STOP_EVENT"><code>Lifecycle.STOP_EVENT</code></a> event.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../util/LifecycleBase.html#stopInternal()">stopInternal</a></code> in class <code><a href="../util/LifecycleBase.html" title="class in org.apache.catalina.util">LifecycleBase</a></code></dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="../LifecycleException.html" title="class in org.apache.catalina">LifecycleException</a></code> - Stop error occurred</dd> +</dl> +</li> +</ul> +<a id="getDomainInternal()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDomainInternal</h4> +<pre class="methodSignature">protected java.lang.String getDomainInternal()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../util/LifecycleMBeanBase.html#getDomainInternal()">LifecycleMBeanBase</a></code></span></div> +<div class="block">Method implemented by sub-classes to identify the domain in which MBeans + should be registered.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../util/LifecycleMBeanBase.html#getDomainInternal()">getDomainInternal</a></code> in class <code><a href="../util/LifecycleMBeanBase.html" title="class in org.apache.catalina.util">LifecycleMBeanBase</a></code></dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>The name of the domain to use to register MBeans.</dd> +</dl> +</li> +</ul> +<a id="getObjectNameKeyProperties()"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getObjectNameKeyProperties</h4> +<pre class="methodSignature">protected java.lang.String getObjectNameKeyProperties()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../util/LifecycleMBeanBase.html#getObjectNameKeyProperties()">LifecycleMBeanBase</a></code></span></div> +<div class="block">Allow sub-classes to specify the key properties component of the + <code>ObjectName</code> that will be used to register this component.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../util/LifecycleMBeanBase.html#getObjectNameKeyProperties()">getObjectNameKeyProperties</a></code> in class <code><a href="../util/LifecycleMBeanBase.html" title="class in org.apache.catalina.util">LifecycleMBeanBase</a></code></dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>The string representation of the key properties component of the + desired <code>ObjectName</code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</section> +</li> +</ul> +</div> +</div> +</main> +<!-- ========= END OF CLASS DATA ========= --> +<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="navBarCell1Rev">Class</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 class="aboutLanguage"><b>Apache Tomcat 9.0.76</b></div> +</div> +<div class="subNav"> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses.html">All 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> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a id="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</nav> +<p class="legalCopy"><small>Copyright © 2000-2023 Apache Software Foundation. All Rights Reserved.</small></p> +</footer> +</body> +</html> Added: tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/filters/RateLimitFilter.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/filters/RateLimitFilter.html?rev=1910321&view=auto ============================================================================== --- tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/filters/RateLimitFilter.html (added) +++ tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/filters/RateLimitFilter.html Fri Jun 9 07:47:37 2023 @@ -0,0 +1,743 @@ +<!DOCTYPE HTML> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc --> +<title>RateLimitFilter (Apache Tomcat 9.0.76 API Documentation)</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.min.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.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.6.1.min.js"></script> +<script type="text/javascript" src="../../../../jquery/jquery-ui.min.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="RateLimitFilter (Apache Tomcat 9.0.76 API Documentation)"; + } + } + catch(err) { + } +//--> +var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +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"> +<!-- ========= 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="navBarCell1Rev">Class</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 class="aboutLanguage"><b>Apache Tomcat 9.0.76</b></div> +</div> +<div class="subNav"> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses.html">All 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> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a id="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +</div> +<div class="navPadding"> </div> +<script type="text/javascript"><!-- +$('.navPadding').css('padding-top', $('.fixedNav').css("height")); +//--> +</script> +</nav> +</header> +<!-- ======== START OF CLASS DATA ======== --> +<main role="main"> +<div class="header"> +<div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">org.apache.catalina.filters</a></div> +<h2 title="Class RateLimitFilter" class="title">Class RateLimitFilter</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li>java.lang.Object</li> +<li> +<ul class="inheritance"> +<li><a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/GenericFilter.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">javax.servlet.GenericFilter</a></li> +<li> +<ul class="inheritance"> +<li>org.apache.catalina.filters.RateLimitFilter</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><code>java.io.Serializable</code>, <code><a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/Filter.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">Filter</a></code>, <code><a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/FilterConfig.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">FilterConfig</a></code></dd> +</dl> +<hr> +<pre>public class <span class="typeNameLabel">RateLimitFilter</span> +extends <a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/GenericFilter.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">GenericFilter</a></pre> +<div class="block"><p> + Servlet filter that can help mitigate Denial of Service (DoS) and Brute Force attacks by limiting the number of a + requests that are allowed from a single IP address within a time window (also referred to as a time bucket), e.g. 300 + Requests per 60 seconds. + </p> + <p> + The filter works by incrementing a counter in a time bucket for each IP address, and if the counter exceeds the + allowed limit then further requests from that IP are dropped with a "429 Too many requests" response until + the bucket time ends and a new bucket starts. + </p> + <p> + The filter is optimized for efficiency and low overhead, so it converts some configured values to more efficient + values. For example, a configuration of a 60 seconds time bucket is converted to 65.536 seconds. That allows for very + fast bucket calculation using bit shift arithmetic. In order to remain true to the user intent, the configured number + of requests is then multiplied by the same ratio, so a configuration of 100 Requests per 60 seconds, has the real + values of 109 Requests per 65 seconds. + </p> + <p> + It is common to set up different restrictions for different URIs. For example, a login page or authentication script + is typically expected to get far less requests than the rest of the application, so you can add a filter definition + that would allow only 5 requests per 15 seconds and map those URIs to it. + </p> + <p> + You can set <code>enforce</code> to <code>false</code> to disable the termination of requests that exceed the allowed + limit. Then your application code can inspect the Request Attribute + <code>org.apache.catalina.filters.RateLimitFilter.Count</code> and decide how to handle the request based on other + information that it has, e.g. allow more requests to certain users based on roles, etc. + </p> + <p> + <strong>WARNING:</strong> if Tomcat is behind a reverse proxy then you must make sure that the Rate Limit Filter sees + the client IP address, so if for example you are using the <a href="#Remote_IP_Filter">Remote IP Filter</a>, then the + filter mapping for the Rate Limit Filter must come <em>after</em> the mapping of the Remote IP Filter to ensure that + each request has its IP address resolved before the Rate Limit Filter is applied. Failure to do so will count + requests from different IPs in the same bucket and will result in a self inflicted DoS attack. + </p></div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../serialized-form.html#org.apache.catalina.filters.RateLimitFilter">Serialized Form</a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<section> +<ul class="blockList"> +<li class="blockList"><a id="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colSecond" scope="col">Field</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_BUCKET_DURATION">DEFAULT_BUCKET_DURATION</a></span></code></th> +<td class="colLast"> +<div class="block">default duration in seconds</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_BUCKET_REQUESTS">DEFAULT_BUCKET_REQUESTS</a></span></code></th> +<td class="colLast"> +<div class="block">default number of requests per duration</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static boolean</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_ENFORCE">DEFAULT_ENFORCE</a></span></code></th> +<td class="colLast"> +<div class="block">default value for enforce</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_STATUS_CODE">DEFAULT_STATUS_CODE</a></span></code></th> +<td class="colLast"> +<div class="block">default status code to return if requests per duration exceeded</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static java.lang.String</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_STATUS_MESSAGE">DEFAULT_STATUS_MESSAGE</a></span></code></th> +<td class="colLast"> +<div class="block">default status message to return if requests per duration exceeded</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static java.lang.String</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PARAM_BUCKET_DURATION">PARAM_BUCKET_DURATION</a></span></code></th> +<td class="colLast"> +<div class="block">init-param to set the bucket duration in seconds</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static java.lang.String</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PARAM_BUCKET_REQUESTS">PARAM_BUCKET_REQUESTS</a></span></code></th> +<td class="colLast"> +<div class="block">init-param to set the bucket number of requests</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static java.lang.String</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PARAM_ENFORCE">PARAM_ENFORCE</a></span></code></th> +<td class="colLast"> +<div class="block">init-param to set the enforce flag</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static java.lang.String</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PARAM_STATUS_CODE">PARAM_STATUS_CODE</a></span></code></th> +<td class="colLast"> +<div class="block">init-param to set a custom status code if requests per duration exceeded</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static java.lang.String</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PARAM_STATUS_MESSAGE">PARAM_STATUS_MESSAGE</a></span></code></th> +<td class="colLast"> +<div class="block">init-param to set a custom status message if requests per duration exceeded</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static java.lang.String</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#RATE_LIMIT_ATTRIBUTE_COUNT">RATE_LIMIT_ATTRIBUTE_COUNT</a></span></code></th> +<td class="colLast"> +<div class="block">request attribute that will contain the number of requests per duration</div> +</td> +</tr> +</table> +</li> +</ul> +</section> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<section> +<ul class="blockList"> +<li class="blockList"><a id="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Constructor</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tr class="altColor"> +<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">RateLimitFilter</a></span>()</code></th> +<td class="colLast"> </td> +</tr> +</table> +</li> +</ul> +</section> +<!-- ========== METHOD SUMMARY =========== --> +<section> +<ul class="blockList"> +<li class="blockList"><a id="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colSecond" scope="col">Method</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#destroy()">destroy</a></span>()</code></th> +<td class="colLast"> +<div class="block">Called by the web container to indicate to a filter that it is being taken out of service.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#doFilter(javax.servlet.ServletRequest,javax.servlet.ServletResponse,javax.servlet.FilterChain)">doFilter</a></span>​(<a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/ServletRequest.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">ServletRequest</a> request, + <a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/ServletResponse.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">ServletResponse</a> response, + <a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">FilterChain</a> chain)</code></th> +<td class="colLast"> +<div class="block">The <code>doFilter</code> method of the Filter is called by the container each time a request/response pair is + passed through the chain due to a client request for a resource at the end of the chain.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>int</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getActualDurationInSeconds()">getActualDurationInSeconds</a></span>()</code></th> +<td class="colLast"> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getActualRequests()">getActualRequests</a></span>()</code></th> +<td class="colLast"> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>void</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#init()">init</a></span>()</code></th> +<td class="colLast"> +<div class="block">Convenience method for sub-classes to save them having to call <code>super.init(config)</code>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a id="methods.inherited.from.class.javax.servlet.GenericFilter"> +<!-- --> +</a> +<h3>Methods inherited from class javax.servlet.<a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/GenericFilter.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">GenericFilter</a></h3> +<code><a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/GenericFilter.html?is-external=true#getFilterConfig()" title="class or interface in javax.servlet" class="externalLink">getFilterConfig</a>, <a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/GenericFilter.html?is-external=true#getFilterName()" title="class or interface in javax.servlet" class="externalLink">getFilterName</a>, <a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/GenericFilter.html?is-external=true#getInitParameter(java.lang.String)" title="class or interface in javax.servlet" class="externalLink">getInitParameter</a>, <a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/GenericFilter.html?is-external=true#getInitParameterNames()" title="class or interface in javax.servlet" class="externalLink">getInitParameterNames</a>, <a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/GenericFilter.html?is-external=true#getServletContext()" title="class or interface in javax.servlet" class="externalLink">getServletContext</a>, <a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/GenericFilter.html?is-external=true#init(javax.servlet.FilterConfig)" title="class or interface in javax.servlet" class="externalLink">init</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.Object</h3> +<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li> +</ul> +</li> +</ul> +</section> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<section> +<ul class="blockList"> +<li class="blockList"><a id="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a id="DEFAULT_BUCKET_DURATION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_BUCKET_DURATION</h4> +<pre>public static final int DEFAULT_BUCKET_DURATION</pre> +<div class="block">default duration in seconds</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../constant-values.html#org.apache.catalina.filters.RateLimitFilter.DEFAULT_BUCKET_DURATION">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a id="DEFAULT_BUCKET_REQUESTS"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_BUCKET_REQUESTS</h4> +<pre>public static final int DEFAULT_BUCKET_REQUESTS</pre> +<div class="block">default number of requests per duration</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../constant-values.html#org.apache.catalina.filters.RateLimitFilter.DEFAULT_BUCKET_REQUESTS">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a id="DEFAULT_ENFORCE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_ENFORCE</h4> +<pre>public static final boolean DEFAULT_ENFORCE</pre> +<div class="block">default value for enforce</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../constant-values.html#org.apache.catalina.filters.RateLimitFilter.DEFAULT_ENFORCE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a id="DEFAULT_STATUS_CODE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_STATUS_CODE</h4> +<pre>public static final int DEFAULT_STATUS_CODE</pre> +<div class="block">default status code to return if requests per duration exceeded</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../constant-values.html#org.apache.catalina.filters.RateLimitFilter.DEFAULT_STATUS_CODE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a id="DEFAULT_STATUS_MESSAGE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_STATUS_MESSAGE</h4> +<pre>public static final java.lang.String DEFAULT_STATUS_MESSAGE</pre> +<div class="block">default status message to return if requests per duration exceeded</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../constant-values.html#org.apache.catalina.filters.RateLimitFilter.DEFAULT_STATUS_MESSAGE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a id="RATE_LIMIT_ATTRIBUTE_COUNT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>RATE_LIMIT_ATTRIBUTE_COUNT</h4> +<pre>public static final java.lang.String RATE_LIMIT_ATTRIBUTE_COUNT</pre> +<div class="block">request attribute that will contain the number of requests per duration</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../constant-values.html#org.apache.catalina.filters.RateLimitFilter.RATE_LIMIT_ATTRIBUTE_COUNT">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a id="PARAM_BUCKET_DURATION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>PARAM_BUCKET_DURATION</h4> +<pre>public static final java.lang.String PARAM_BUCKET_DURATION</pre> +<div class="block">init-param to set the bucket duration in seconds</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../constant-values.html#org.apache.catalina.filters.RateLimitFilter.PARAM_BUCKET_DURATION">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a id="PARAM_BUCKET_REQUESTS"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>PARAM_BUCKET_REQUESTS</h4> +<pre>public static final java.lang.String PARAM_BUCKET_REQUESTS</pre> +<div class="block">init-param to set the bucket number of requests</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../constant-values.html#org.apache.catalina.filters.RateLimitFilter.PARAM_BUCKET_REQUESTS">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a id="PARAM_ENFORCE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>PARAM_ENFORCE</h4> +<pre>public static final java.lang.String PARAM_ENFORCE</pre> +<div class="block">init-param to set the enforce flag</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../constant-values.html#org.apache.catalina.filters.RateLimitFilter.PARAM_ENFORCE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a id="PARAM_STATUS_CODE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>PARAM_STATUS_CODE</h4> +<pre>public static final java.lang.String PARAM_STATUS_CODE</pre> +<div class="block">init-param to set a custom status code if requests per duration exceeded</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../constant-values.html#org.apache.catalina.filters.RateLimitFilter.PARAM_STATUS_CODE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a id="PARAM_STATUS_MESSAGE"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>PARAM_STATUS_MESSAGE</h4> +<pre>public static final java.lang.String PARAM_STATUS_MESSAGE</pre> +<div class="block">init-param to set a custom status message if requests per duration exceeded</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../constant-values.html#org.apache.catalina.filters.RateLimitFilter.PARAM_STATUS_MESSAGE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +</li> +</ul> +</section> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<section> +<ul class="blockList"> +<li class="blockList"><a id="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a id="<init>()"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>RateLimitFilter</h4> +<pre>public RateLimitFilter()</pre> +</li> +</ul> +</li> +</ul> +</section> +<!-- ============ METHOD DETAIL ========== --> +<section> +<ul class="blockList"> +<li class="blockList"><a id="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a id="getActualRequests()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getActualRequests</h4> +<pre class="methodSignature">public int getActualRequests()</pre> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the actual maximum allowed requests per time bucket</dd> +</dl> +</li> +</ul> +<a id="getActualDurationInSeconds()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getActualDurationInSeconds</h4> +<pre class="methodSignature">public int getActualDurationInSeconds()</pre> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the actual duration of a time bucket in milliseconds</dd> +</dl> +</li> +</ul> +<a id="init()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>init</h4> +<pre class="methodSignature">public void init() + throws <a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/ServletException.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">ServletException</a></pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/GenericFilter.html?is-external=true#init()" title="class or interface in javax.servlet" class="externalLink">javax.servlet.GenericFilter</a></code></span></div> +<div class="block">Convenience method for sub-classes to save them having to call <code>super.init(config)</code>. This is a NO-OP + by default.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/GenericFilter.html?is-external=true#init()" title="class or interface in javax.servlet" class="externalLink">init</a></code> in class <code><a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/GenericFilter.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">GenericFilter</a></code></dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/ServletException.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">ServletException</a></code> - If an exception occurs that interrupts the Filter's normal operation</dd> +</dl> +</li> +</ul> +<a id="doFilter(javax.servlet.ServletRequest,javax.servlet.ServletResponse,javax.servlet.FilterChain)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>doFilter</h4> +<pre class="methodSignature">public void doFilter​(<a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/ServletRequest.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">ServletRequest</a> request, + <a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/ServletResponse.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">ServletResponse</a> response, + <a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/FilterChain.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">FilterChain</a> chain) + throws java.io.IOException, + <a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/ServletException.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">ServletException</a></pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/Filter.html?is-external=true#doFilter(javax.servlet.ServletRequest,javax.servlet.ServletResponse,javax.servlet.FilterChain)" title="class or interface in javax.servlet" class="externalLink">javax.servlet.Filter</a></code></span></div> +<div class="block">The <code>doFilter</code> method of the Filter is called by the container each time a request/response pair is + passed through the chain due to a client request for a resource at the end of the chain. The FilterChain passed + in to this method allows the Filter to pass on the request and response to the next entity in the chain. + <p> + A typical implementation of this method would follow the following pattern:- <br> + 1. Examine the request<br> + 2. Optionally wrap the request object with a custom implementation to filter content or headers for input + filtering <br> + 3. Optionally wrap the response object with a custom implementation to filter content or headers for output + filtering <br> + 4. a) <strong>Either</strong> invoke the next entity in the chain using the FilterChain object + (<code>chain.doFilter()</code>), <br> + 4. b) <strong>or</strong> not pass on the request/response pair to the next entity in the filter chain to block + the request processing<br> + 5. Directly set headers on the response after invocation of the next entity in the filter chain.</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>request</code> - The request to process</dd> +<dd><code>response</code> - The response associated with the request</dd> +<dd><code>chain</code> - Provides access to the next filter in the chain for this filter to pass the request and response + to for further processing</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code>java.io.IOException</code> - if an I/O error occurs during this filter's processing of the request</dd> +<dd><code><a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/ServletException.html?is-external=true" title="class or interface in javax.servlet" class="externalLink">ServletException</a></code> - if the processing fails for any other reason</dd> +</dl> +</li> +</ul> +<a id="destroy()"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>destroy</h4> +<pre class="methodSignature">public void destroy()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="https://javaee.github.io/javaee-spec/javadocs/javax/servlet/Filter.html?is-external=true#destroy()" title="class or interface in javax.servlet" class="externalLink">javax.servlet.Filter</a></code></span></div> +<div class="block">Called by the web container to indicate to a filter that it is being taken out of service. This method is only + called once all threads within the filter's doFilter method have exited or after a timeout period has passed. + After the web container calls this method, it will not call the doFilter method again on this instance of the + filter. <br> + <br> + This method gives the filter an opportunity to clean up any resources that are being held (for example, memory, + file handles, threads) and make sure that any persistent state is synchronized with the filter's current state in + memory. The default implementation is a NO-OP.</div> +</li> +</ul> +</li> +</ul> +</section> +</li> +</ul> +</div> +</div> +</main> +<!-- ========= END OF CLASS DATA ========= --> +<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="navBarCell1Rev">Class</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 class="aboutLanguage"><b>Apache Tomcat 9.0.76</b></div> +</div> +<div class="subNav"> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses.html">All 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> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a id="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</nav> +<p class="legalCopy"><small>Copyright © 2000-2023 Apache Software Foundation. All Rights Reserved.</small></p> +</footer> +</body> +</html> Added: tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/NetMaskSet.html URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/NetMaskSet.html?rev=1910321&view=auto ============================================================================== --- tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/NetMaskSet.html (added) +++ tomcat/site/trunk/docs/tomcat-9.0-doc/api/org/apache/catalina/util/NetMaskSet.html Fri Jun 9 07:47:37 2023 @@ -0,0 +1,478 @@ +<!DOCTYPE HTML> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc --> +<title>NetMaskSet (Apache Tomcat 9.0.76 API Documentation)</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.min.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.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.6.1.min.js"></script> +<script type="text/javascript" src="../../../../jquery/jquery-ui.min.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="NetMaskSet (Apache Tomcat 9.0.76 API Documentation)"; + } + } + catch(err) { + } +//--> +var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +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"> +<!-- ========= 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="navBarCell1Rev">Class</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 class="aboutLanguage"><b>Apache Tomcat 9.0.76</b></div> +</div> +<div class="subNav"> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses.html">All 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> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a id="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +</div> +<div class="navPadding"> </div> +<script type="text/javascript"><!-- +$('.navPadding').css('padding-top', $('.fixedNav').css("height")); +//--> +</script> +</nav> +</header> +<!-- ======== START OF CLASS DATA ======== --> +<main role="main"> +<div class="header"> +<div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">org.apache.catalina.util</a></div> +<h2 title="Class NetMaskSet" class="title">Class NetMaskSet</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li>java.lang.Object</li> +<li> +<ul class="inheritance"> +<li>org.apache.catalina.util.NetMaskSet</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<pre>public class <span class="typeNameLabel">NetMaskSet</span> +extends java.lang.Object</pre> +<div class="block">This class maintains a Set of NetMask objects and allows to check if a given IP address is matched by any of the + NetMasks, making it easy to create Allow and Deny lists of CIDR networks and hosts.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<section> +<ul class="blockList"> +<li class="blockList"><a id="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Constructor</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tr class="altColor"> +<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">NetMaskSet</a></span>()</code></th> +<td class="colLast"> </td> +</tr> +</table> +</li> +</ul> +</section> +<!-- ========== METHOD SUMMARY =========== --> +<section> +<ul class="blockList"> +<li class="blockList"><a id="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colSecond" scope="col">Method</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#add(java.lang.String)">add</a></span>​(java.lang.String input)</code></th> +<td class="colLast"> +<div class="block">Creates a NetMask object from the input string and adds it to the set.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#add(org.apache.catalina.util.NetMask)">add</a></span>​(<a href="NetMask.html" title="class in org.apache.catalina.util">NetMask</a> netmask)</code></th> +<td class="colLast"> +<div class="block">Adds a NetMask object to the set if the set does not contain it</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>java.util.List<java.lang.String></code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAll(java.lang.String)">addAll</a></span>​(java.lang.String input)</code></th> +<td class="colLast"> +<div class="block">Adds a <a href="NetMask.html" title="class in org.apache.catalina.util"><code>NetMask</code></a> list from a string input containing a comma-separated list of (hopefully valid) + <a href="NetMask.html" title="class in org.apache.catalina.util"><code>NetMask</code></a>s.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clear()">clear</a></span>()</code></th> +<td class="colLast"> +<div class="block">removes all entries from the set</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#contains(java.lang.String)">contains</a></span>​(java.lang.String ipAddress)</code></th> +<td class="colLast"> +<div class="block">Tests if the provided IP address matches any of the <a href="NetMask.html" title="class in org.apache.catalina.util"><code>NetMask</code></a>s in the set.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#contains(java.net.InetAddress)">contains</a></span>​(java.net.InetAddress inetAddress)</code></th> +<td class="colLast"> +<div class="block">Tests if the provided InetAddress matches any of the <a href="NetMask.html" title="class in org.apache.catalina.util"><code>NetMask</code></a>s in the set.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEmpty()">isEmpty</a></span>()</code></th> +<td class="colLast"> +<div class="block">Tests if the set is empty.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>java.lang.String</code></td> +<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th> +<td class="colLast"> +<div class="block">Provides a string representation of this NetMaskSet.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.Object</h3> +<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li> +</ul> +</li> +</ul> +</section> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<section> +<ul class="blockList"> +<li class="blockList"><a id="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a id="<init>()"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>NetMaskSet</h4> +<pre>public NetMaskSet()</pre> +</li> +</ul> +</li> +</ul> +</section> +<!-- ============ METHOD DETAIL ========== --> +<section> +<ul class="blockList"> +<li class="blockList"><a id="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a id="contains(java.net.InetAddress)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>contains</h4> +<pre class="methodSignature">public boolean contains​(java.net.InetAddress inetAddress)</pre> +<div class="block">Tests if the provided InetAddress matches any of the <a href="NetMask.html" title="class in org.apache.catalina.util"><code>NetMask</code></a>s in the set.</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>inetAddress</code> - An InetAddress to check</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if the passed inetAddress is matched by any of the <a href="NetMask.html" title="class in org.apache.catalina.util"><code>NetMask</code></a>s in the set</dd> +</dl> +</li> +</ul> +<a id="contains(java.lang.String)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>contains</h4> +<pre class="methodSignature">public boolean contains​(java.lang.String ipAddress) + throws java.net.UnknownHostException</pre> +<div class="block">Tests if the provided IP address matches any of the <a href="NetMask.html" title="class in org.apache.catalina.util"><code>NetMask</code></a>s in the set.</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>ipAddress</code> - an IP address to check</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if the passed IP address is matched by any of the <a href="NetMask.html" title="class in org.apache.catalina.util"><code>NetMask</code></a>s in the set</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code>java.net.UnknownHostException</code> - if the passed input is not a valid IP address</dd> +</dl> +</li> +</ul> +<a id="add(org.apache.catalina.util.NetMask)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>add</h4> +<pre class="methodSignature">public boolean add​(<a href="NetMask.html" title="class in org.apache.catalina.util">NetMask</a> netmask)</pre> +<div class="block">Adds a NetMask object to the set if the set does not contain it</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>netmask</code> - The NetMask to add</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>true if the object was added</dd> +</dl> +</li> +</ul> +<a id="add(java.lang.String)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>add</h4> +<pre class="methodSignature">public boolean add​(java.lang.String input)</pre> +<div class="block">Creates a NetMask object from the input string and adds it to the set.</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>input</code> - The string from which to construct the NetMask</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>true if the object was added</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code>java.lang.IllegalArgumentException</code> - if the input is not a valid CIDR format.</dd> +</dl> +</li> +</ul> +<a id="clear()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clear</h4> +<pre class="methodSignature">public void clear()</pre> +<div class="block">removes all entries from the set</div> +</li> +</ul> +<a id="isEmpty()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isEmpty</h4> +<pre class="methodSignature">public boolean isEmpty()</pre> +<div class="block">Tests if the set is empty.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if the set is empty, otherwise <code>false</code></dd> +</dl> +</li> +</ul> +<a id="addAll(java.lang.String)"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>addAll</h4> +<pre class="methodSignature">public java.util.List<java.lang.String> addAll​(java.lang.String input)</pre> +<div class="block">Adds a <a href="NetMask.html" title="class in org.apache.catalina.util"><code>NetMask</code></a> list from a string input containing a comma-separated list of (hopefully valid) + <a href="NetMask.html" title="class in org.apache.catalina.util"><code>NetMask</code></a>s.</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>input</code> - The input string</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>a list of processing error messages (empty when no errors)</dd> +</dl> +</li> +</ul> +<a id="toString()"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre class="methodSignature">public java.lang.String toString()</pre> +<div class="block">Provides a string representation of this NetMaskSet. The format of the String is not guaranteed to remain fixed.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code>toString</code> in class <code>java.lang.Object</code></dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>a comma separated list of the <code>NetMask</code>s in this set</dd> +</dl> +</li> +</ul> +</li> +</ul> +</section> +</li> +</ul> +</div> +</div> +</main> +<!-- ========= END OF CLASS DATA ========= --> +<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="navBarCell1Rev">Class</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 class="aboutLanguage"><b>Apache Tomcat 9.0.76</b></div> +</div> +<div class="subNav"> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses.html">All 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> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a id="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</nav> +<p class="legalCopy"><small>Copyright © 2000-2023 Apache Software Foundation. All Rights Reserved.</small></p> +</footer> +</body> +</html> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org