This section contains the details about IP Filter.
IP Filter
A filter is an object that can transform a request or alter a response. Filters not create a response like servlet. It process request before it reaches to a servlet and can process response before it leaves to a servlet.
Given below filter provides a basic security mechanism for a firewall to determining what traffic passes through the firewall based on IP address details :
IPFilterExample.java
import java.io.*; import java.util.*; import javax.servlet.*; import java.io.IOException; import java.util.StringTokenizer; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletResponse; public class IPFilterExample implements Filter{ public IPFilterExample() {} public final static String IP = "127.0.0.1"; private FilterConfig filterConfig; public void init(FilterConfig config) throws ServletException{ this.filterConfig = config; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterchain) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html><head><title>IP Filter Example</title></head>"); String userip = request.getRemoteAddr(); HttpServletResponse httpResponse = null; if (response instanceof HttpServletResponse){ httpResponse = (HttpServletResponse) response; } if (IP.equals(userip)) { httpResponse.sendError(HttpServletResponse.SC_FORBIDDEN,"You are not allowed to access the servlet!"); } else { filterchain.doFilter(request, response); out.println("<body><h3><font color='green'>Passed successfully from IP Filter <font></h3></body></html>"+userip); } } public void destroy() {} }
CallIpFilter.java
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class CallIpFilter extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{ response.setContentType("text/html"); PrintWriter pw = response.getWriter(); pw.println("<html>"); pw.println("<head><title>IP Filter Example</title></title>"); pw.println("<body>"); pw.println("<h1>Welcome, calling servlet successful</h1>"); pw.println("</body></html>"); } }
Output
If IP is 127.0.0.1 , it will display following message :
If it is not 127.0.0.1, it will show the following message :
[ 0 ] Comments