Anuj Dhiman
Anuj Dhiman

Reputation: 1580

Verify header before request receive in tomcat

I need verify header before receive the request. I found that tomcat valve can help in it. I follow these steps but valve is not called:

  1. make a maven project and do this code in it.

    package cz.ValveTest;
    
    import java.io.IOException;
    import java.util.Enumeration;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    
    import org.apache.catalina.connector.Request;
    import org.apache.catalina.connector.Response;
    import org.apache.catalina.valves.ValveBase;
    
    public class ProcessingValve  extends ValveBase {
    
    private static final Logger logger = Logger.getLogger(ProcessingValve.class.getName());
    
    @Override
    public void invoke(Request request, Response response) throws IOException,
            ServletException {
    
    
    HttpServletRequest httpServletRequest = request.getRequest();
    
     Enumeration<String> headerNames = httpServletRequest.getHeaderNames();
     logger.info("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
    
    while (headerNames.hasMoreElements()) { String header = headerNames.nextElement(); logger.log(Level.INFO, "Header --> {0} Value --> {1}", new Object[]{header, httpServletRequest.getHeader(header)}); }
      getNext().invoke(request, response);  
    
    } }
  2. make jar and put jar inside tomcat/lib folder

  3. add this line in server.xml

    <valve className="cz.ValveTest.ProcessingValve"/>
    
  4. restart tomcat.

  5. Now I hit my web service with header:

    Expect : 100-continue

but using this configuration and code valve is not called on http hit.If any one knew why tomcat valve is not called please help.

Upvotes: 1

Views: 2115

Answers (1)

Arnaud
Arnaud

Reputation: 17524

The tags in server.xml are case sensitive.

So try this :

<Valve className="cz.ValveTest.ProcessingValve"/>

Upvotes: 1

Related Questions