dfischer.femtowebserver.filter
Class RestrictedInetAddressFilter
java.lang.Object
|
+--dfischer.femtowebserver.httpd.HttpdFilter
|
+--dfischer.femtowebserver.filter.RestrictedInetAddressFilter
- public class RestrictedInetAddressFilter
- extends HttpdFilter
This filter restricts the access from a remote host to the Femto Web Server. Only requests from the
hosts (remote ip addresses) which are listed/configured in the filter arguments will be served. Request
from all other hosts will be aborted.
Configuration Example:
...
...
Httpd httpdThread = new Httpd();
// configure femto web server
String serverName = "127.0.0.1";
try { serverName = InetAddress.getLocalHost().getHostName(); } catch (Exception ex) {}
httpdThread.setServerName(serverName);
httpdThread.setServerPort(80);
String[] allowedRemoteIpAddresses = { "127.0.0.1", "172.16.4.33" };
httpdThread.addFilter("dfischer.femtowebserver.filter.RestrictedInetAddressFilter", allowedRemoteIpAddresses);
...
...
Sourcecode of Filter:
package dfischer.femtowebserver.filter;
import dfischer.femtowebserver.httpd.*;
public class RestrictedInetAddressFilter extends HttpdFilter
{
public void filterRequest(HttpRequest httpRequest, HttpResponse httpResponse) throws Exception
{
String remoteIpAddress = httpRequest.getRemoteAddress();
String[] filterArguments = getFilterArguments();
for (int x = 0; x < filterArguments.length; x++)
{
// check remote access
if (filterArguments[x].equalsIgnoreCase(remoteIpAddress))
return;
}
// abort request - forbidden
HttpResponse errorResponse = abortRequest();
errorResponse.setError(403, "Forbidden");
}
public void filterResponse(HttpRequest httpRequest, HttpResponse httpResponse) throws Exception
{
}
}
- See Also:
ContentCompressionFilter,
HttpDebugFilter,
HttpSessionCookieHandler,
HttpdFilter
| Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
RestrictedInetAddressFilter
public RestrictedInetAddressFilter()
filterRequest
public void filterRequest(HttpRequest httpRequest,
HttpResponse httpResponse)
throws java.lang.Exception
- Description copied from class:
HttpdFilter
- Allows filtering tasks on the HTTP request and to preset the HTTP response (at his time blank). Consider
that some or all parts of the HTTP response will later be overwritten when the (modified) request is processed
by the Femto Web Server.
- Overrides:
filterRequest in class HttpdFilter
- Following copied from class:
dfischer.femtowebserver.httpd.HttpdFilter
- Parameters:
httpRequest - The HTTP request data (browser request)HttpResponse - The HTTP response data (server response)- See Also:
HttpRequest.getSession(),
HttpRequest.setSession(dfischer.femtowebserver.httpd.HttpdSession),
HttpRequest.getRemoteAddress(),
HttpRequest.setRemoteAddress(java.lang.String),
HttpRequest.getVirtualHost(),
HttpRequest.setVirtualHost(java.lang.String),
HttpRequest.getVirtualPort(),
HttpRequest.setVirtualPort(int),
HttpRequest.getUserAgent(),
HttpRequest.setUserAgent(java.lang.String),
HttpRequest.getHeaderField(java.lang.String),
HttpRequest.addHeaderField(java.lang.String, java.lang.String),
HttpRequest.updateHeaderField(java.lang.String, java.lang.String),
HttpRequest.removeHeaderField(java.lang.String),
HttpRequest.getMethod(),
HttpRequest.setMethod(java.lang.String),
HttpRequest.getRequest(),
HttpRequest.setRequest(java.lang.String),
HttpRequest.getParameter(String),
HttpRequest.addParameter(java.lang.String, java.lang.String),
HttpRequest.updateParameter(java.lang.String, java.lang.String),
HttpRequest.removeParameter(java.lang.String),
HttpRequest.getContent(),
HttpRequest.setContent(byte[]),
HttpRequest.clearContent(),
HttpRequest.getContentType(),
HttpRequest.setContentType(java.lang.String),
HttpRequest.getContentSubtype(),
HttpRequest.setContentSubtype(java.lang.String)
filterResponse
public void filterResponse(HttpRequest httpRequest,
HttpResponse httpResponse)
throws java.lang.Exception
- Description copied from class:
HttpdFilter
- Allows filtering tasks on the HTTP response and to access the HTTP request. Consider
that modifying the HTTP request will have no impact to the HTTP response result because the request has been
already processed by the Femto Web Server.
- Overrides:
filterResponse in class HttpdFilter
- Following copied from class:
dfischer.femtowebserver.httpd.HttpdFilter
- Parameters:
httpRequest - The HTTP request data (browser request)HttpResponse - The HTTP response data (server response)- See Also:
HttpResponse.getSession(),
HttpResponse.setSession(dfischer.femtowebserver.httpd.HttpdSession),
HttpResponse.getStatus(),
HttpResponse.setStatus(int, java.lang.String),
HttpResponse.getContentType(),
HttpResponse.getContentSubtype(),
HttpResponse.setContentType(java.lang.String),
HttpResponse.getHeaderField(java.lang.String),
HttpResponse.getHeaderFieldNames(),
HttpResponse.updateHeaderField(java.lang.String, java.lang.String),
HttpResponse.addHeaderField(java.lang.String, java.lang.String),
HttpResponse.removeHeaderField(java.lang.String),
HttpResponse.getContent(),
HttpResponse.getContentAsString(),
HttpResponse.setContent(byte[]),
HttpResponse.clearContent(),
HttpResponse.print(String),
HttpResponse.println(String)
Copyright 2002, 2003, 2006 by Ingenieurbüro David Fischer GmbH, Switzerland. All rights reserved.