Open In App

Servlet - Authentication Filter

Last Updated : 16 Feb, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report

Servlets are the Java programs that run on the Java-enabled web server or application server. They are used to handle the request obtained from the webserver, process the request, produce the response, then send a response back to the webserver.

Authentication Filter In Servlets 

Authentication may be done in the filter. Here, we'll verify the user's password in the ServletFilter class; if the password is "geeksforgeeks", the request will be sent to the Gfg servlet; otherwise, an error message will be displayed.

Implementation: Let's look at a simple example of utilizing a filter to authenticate a user. We've produced four files here:

  • index.html
  • Gfg.java
  • ServletFilter.java
  • web.xml

File: index.html

HTML
<form action = "servlet1">

               Name: < input type = "text" name = "name" / > < br / > < br / >

                                    Password: < input type = "password" name = "password" / > < br / > < br / >

                                            <input type = "submit" value = "login">

                                                    < / form >


Example 1-A:

Java
// Java Program to Illustrate ServletFilter Class

// Importing required classes
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;

// Class
// Implementing Filter class
public class ServletFilter implements Filter {

    public void init(FilterConfig arg0)
        throws ServletException
    {
    }

    public void doFilter(ServletRequest req,
                         ServletResponse resp,
                         FilterChain chain)
        throws IOException, ServletException
    {

        PrintWriter out = resp.getWriter();

        String password = req.getParameter("password");

        if (password.equals("geeksforgeeks")) {

            // Sending request to next
            chain.doFilter(req, resp);
        }

        // Password incorrect
        else {
            out.print("username or password is wrong");
            RequestDispatcher rd
                = req.getRequestDispatcher("index.html");
            rd.include(req, resp);
        }
    }
    public void destroy() {}
}


Example 1-B:

Java
// Java Program to Illustrate GFG Class

// Importing required classes
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;

// Class
// Derived from HttpServlet class
public class GFG extends HttpServlet {

    // Getting request response
    public void doGet(HttpServletRequest request,
                      HttpServletResponse response)
        throws ServletException, IOException
    {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        out.print("welcome to GEEKSFORGEEKS");

        // Closing connections to
        // avoid any memory leakage
        out.close();
    }
}


File: web.xml

XML
<web-app>  
 <servlet>  
    <servlet-name>Gfg</servlet-name>  
    <servlet-class>Gfg</servlet-class>  
  </servlet>  
  
  <servlet-mapping>  
    <servlet-name>Gfg</servlet-name>  
    <url-pattern>/servlet1</url-pattern>  
  </servlet-mapping>  
    
 <filter>  
  <filter-name>f1</filter-name>  
  <filter-class>ServletFilter</filter-class>  
  </filter>  
  <filter-mapping>  
  <filter-name>f1</filter-name>  
  <url-pattern>/servlet1</url-pattern>  
  </filter-mapping>  
    
</web-app>  

Output:

Click on the login button, if the password is correct then the above message will be shown to the user.


Next Article
Article Tags :
Practice Tags :

Similar Reads