blob: a87e507b9bba8cea97aeda4aafc72f58b049155f [file]
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>IP Access Handler</title><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><meta name="keywords" content="jetty, servlet, servlet-api, cometd, http, spdy, websocket, eclipse, maven, java, server, software"><link rel="home" href="index.html" title="Jetty : The Definitive Reference"><link rel="up" href="advanced-extras.html" title="Chapter&nbsp;18.&nbsp;Provided Servlets, Filters, and Handlers"><link rel="prev" href="statistics-handler.html" title="Statistics Handler"><link rel="next" href="moved-context-handler.html" title="Moved Context Handler"><link xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" rel="shortcut icon" href="images/favicon.ico"><script type="text/javascript" src="js/shCore.js"></script><script type="text/javascript" src="js/shBrushJava.js"></script><script type="text/javascript" src="js/shBrushXml.js"></script><script type="text/javascript" src="js/shBrushBash.js"></script><script type="text/javascript" src="js/shBrushJScript.js"></script><script type="text/javascript" src="js/shBrushSql.js"></script><script type="text/javascript" src="js/shBrushProperties.js"></script><script type="text/javascript" src="js/shBrushPlain.js"></script><link type="text/css" rel="stylesheet" href="css/shCore.css"><link type="text/css" rel="stylesheet" href="css/shThemeEclipse.css"><link type="text/css" rel="stylesheet" href="css/font-awesome.min.css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times"><tr><td style="width: 25%"><a href="http://www.eclipse.org/jetty"><img src="images/jetty-header-logo.png" alt="Jetty Logo"></a><br><span style="font-size: small">
Version: 9.2.21.v20170120</span></td><td style="width: 50%"><script type="text/javascript"> (function() {
var cx = '016459005284625897022:obd4lsai2ds';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
'//www.google.com/cse/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
})();
</script><gcse:search></gcse:search></td></tr></table><div xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">IP Access Handler</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="statistics-handler.html"><i class="icon-chevron-left"></i> Previous</a>&nbsp;</td><th width="60%" align="center">Chapter&nbsp;18.&nbsp;Provided Servlets, Filters, and Handlers<br><a accesskey="p" href="index.html"><i class="icon-home"></i> Home</a></th><td width="20%" align="right">&nbsp;<a accesskey="n" href="moved-context-handler.html">Next <i class="icon-chevron-right"></i></a></td></tr></table><hr></div><div xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" class="jetty-callout"><h5 class="callout"><a href="http://www.webtide.com/">Contact the core Jetty developers at
<span class="website">www.webtide.com</span></a></h5><p>
private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ...
scalability guidance for your apps and Ajax/Comet projects ... development services from 1 day to full product delivery
</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ipaccess-handler"></a>IP Access Handler</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="ipaccess-handler.html#ipaccess-handler-metadata">Info</a></span></dt><dt><span class="section"><a href="ipaccess-handler.html#ipaccess-handler-usage">Usage</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="ipaccess-handler-metadata"></a>Info</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Classname: <code class="code">org.eclipse.jetty.server.handler.IPAccessHandler</code></p></li><li class="listitem"><p>Maven Artifact: org.eclipse.jetty:jetty-server</p></li><li class="listitem"><p>
Javadoc: <a class="link" href="http://download.eclipse.org/jetty/stable-9/apidocs/org/eclipse/jetty/server/handler/IPAccessHandler.html" target="_top">http://download.eclipse.org/jetty/stable-9/apidocs/org/eclipse/jetty/server/handler/IPAccessHandler.html</a>
</p></li><li class="listitem"><p>
Xref: <a class="link" href="http://download.eclipse.org/jetty/stable-9/xref/org/eclipse/jetty/server/handler/IPAccessHandler.html" target="_top">http://download.eclipse.org/jetty/stable-9/xref/org/eclipse/jetty/server/handler/IPAccessHandler.html</a>
</p></li></ul></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="ipaccess-handler-usage"></a>Usage</h3></div></div></div><p>
Controls access to the wrapped handler by the real remote IP. Control is provided
by white/black lists that include both internet addresses and URIs. This handler
uses the real internet address of the connection, not one reported in the forwarded
for headers, as this cannot be as easily forged.
</p><p>
Typically, the black/white lists will be used in one of three modes:
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
Blocking a few specific IPs/URLs by specifying several black list entries.
</p></li><li class="listitem"><p>
Allowing only some specific IPs/URLs by specifying several white lists entries.
</p></li><li class="listitem"><p>
Allowing a general range of IPs/URLs by specifying several general white list
entries, that are then further refined by several specific black list exceptions
</p></li></ul></div><p>
An empty white list is treated as match all. If there is at least one entry in
the white list, then a request must match a white list entry. Black list entries
are always applied, so that even if an entry matches the white list, a black list
entry will override it.
</p><p>
Internet addresses may be specified as absolute address or as a combination of
four octet wildcard specifications (a.b.c.d) that are defined as follows.
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
nnn - an absolute value (0-255)
</p></li><li class="listitem"><p>
mmm-nnn - an inclusive range of absolute values, with following shorthand notations:
</p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p>
nnn- =&gt; nnn-255
</p></li><li class="listitem"><p>
-nnn =&gt; 0-nnn
</p></li><li class="listitem"><p>
- =&gt; 0-255
</p></li></ul></div></li><li class="listitem"><p>
a,b,... - a list of wildcard specifications
</p></li></ul></div><p>
Internet address specification is separated from the URI pattern using the "|" (pipe)
character. URI patterns follow the servlet specification for simple * prefix and
suffix wild cards (e.g. /, /foo, /foo/bar, /foo/bar/*, *.baz).
</p><p>
Earlier versions of the handler used internet address prefix wildcard specification
to define a range of the internet addresses (e.g. 127., 10.10., 172.16.1.).
They also used the first "/" character of the URI pattern to separate it from the
internet address. Both of these features have been deprecated in the current version.
</p><p>
Examples of the entry specifications are:
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
10.10.1.2 - all requests from IP 10.10.1.2
</p></li><li class="listitem"><p>
10.10.1.2|/foo/bar - all requests from IP 10.10.1.2 to URI /foo/bar
</p></li><li class="listitem"><p>
10.10.1.2|/foo/* - all requests from IP 10.10.1.2 to URIs starting with /foo/
</p></li><li class="listitem"><p>
10.10.1.2|*.html - all requests from IP 10.10.1.2 to URIs ending with .html
</p></li><li class="listitem"><p>
10.10.0-255.0-255 - all requests from IPs within 10.10.0.0/16 subnet
</p></li><li class="listitem"><p>
10.10.0-.-255|/foo/bar - all requests from IPs within 10.10.0.0/16 subnet to URI /foo/bar
</p></li><li class="listitem"><p>
10.10.0-3,1,3,7,15|/foo/* - all requests from IPs addresses with last octet equal
to 1,3,7,15 in subnet 10.10.0.0/22 to URIs starting with /foo/
</p></li></ul></div><p>
Earlier versions of the handler used internet address prefix wildcard specification
to define a range of the internet addresses (e.g. 127., 10.10., 172.16.1.).
They also used the first "/" character of the URI pattern to separate it from the
internet address. Both of these features have been deprecated in the current version.
</p></div></div><script type="text/javascript">
SyntaxHighlighter.all()
</script><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="statistics-handler.html"><i class="icon-chevron-left"></i> Previous</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="advanced-extras.html"><i class="icon-chevron-up"></i> Top</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="moved-context-handler.html">Next <i class="icon-chevron-right"></i></a></td></tr><tr><td width="40%" align="left" valign="top">Statistics Handler&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html"><i class="icon-home"></i> Home</a></td><td width="40%" align="right" valign="top">&nbsp;Moved Context Handler</td></tr></table></div><p xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times"><div class="jetty-callout">
See an error or something missing?
<span class="callout"><a href="http://github.com/jetty-project/jetty-documentation">Contribute to this documentation at
<span class="website"><i class="icon-github"></i> Github!</span></a></span><span style="float: right"><i>(Generated: 2015-03-13T11:47:52-05:00)</i></span></div></p><script xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-1149868-7']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script></body></html>