This section contains the details about Login Filter.
Login filter
As we discuss earlier, a filter is an object that can transform a request or alter a response. It process request before it reaches to a servlet and can process response before it leaves to a servlet.
This filter performs pre-login activity to determine if the user trying to log-in is not the restricted user. The restricted user list is reside in a text file. Given below the example which have a html login form, a servlet & a filter to restrict some user :
username.txt(Restricted user list)
Ankit Kapil Divya Vinita
LoginFilter.html
<HTML> <HEAD> <TITLE>Login Filter</TITLE> </HEAD> <BODY bgcolor="silver"> <form method="post" action="/ankit/servlet/LoginFilterDemo"> <center> <h3>ENTER USER NAME & PASSWORD</h3> <table border=1> <tr><td>Enter Your Name :</td> <td><input type="text" name="userId" value=""></td> </tr> <tr><td>Enter Your PassWord :</td> <td><input type="password" name="userPassWord" value=""></td> </tr> <tr><td><input type="submit" name="Submit" value="Submit"></td> <td><input type="reset" name="reset" value="Refresh"></td> <table> </center> </form> </BODY> </HTML>
LoginFilter.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 LoginFilter implements Filter{
public LoginFilter() {}
public final static String devil = "Ankit";
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>Login Filter Example</title></head>");
String username = request.getParameter("userId");
HttpServletResponse httpResponse = null;
if (response instanceof HttpServletResponse){
httpResponse = (HttpServletResponse) response;
}
BufferedReader input = new BufferedReader(new FileReader("C://Username.txt"));
String line = "";
while ((line = input.readLine()) != null) {
if (line.equals(username)) {
httpResponse.sendError(HttpServletResponse.SC_FORBIDDEN,"You are not allowed to
access the servlet!");
}
}
filterchain.doFilter(request, response);
out.println("<body><h3><font color='green'>Passed successfully from IP Filter
<font></h3></body></html>");
}
public void destroy() {}
}
LoginFilterDemo.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginFilterDemo extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response)throws
IOException,ServletException{
PrintWriter out=response.getWriter();
response.setContentType("Text/Html");
String userId=request.getParameter("userId");
String userPassWord=request.getParameter("userPassWord");
out.println("<html>");
out.println("<body bgcolor=silver>");
out.println("<h2> Getting Parameter from User Example</h2>");
out.println("<b><Font color=blue >");
out.println("User Id is -" +userId);
out.println("<br>");
out.println("User PassWord is -" + userPassWord);
out.println("</b></font>");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)throws
IOException,ServletException{
doGet(request,response);
}
}
Output
Restricted user login :

It will display the following message :

If user(For ex.-Neha) is not restricted, it will display following message :


[ 0 ] Comments