When I want to forbidden some robort to acces my website,
I write somecode to extends the
org.apache.catalina.valves.RequestFilterValve class.
package org.apache.catalina.valves;
import java.io.*;
import javax.servlet.*;
import org.apache.catalina.connector.*;
/**
* <p>Title: Request Header Filter For Tomcat</p>
* <p>Description:
* eg: set follow coment in ${catalina.home}/conf/server.xml:
* <Valve className="org.apache.catalina.valves.RequestHeaderValve"
header="User-Agent"
deny="*httunit*"/>
* then you can forbidden someone use httpunit to Access the Engine
,Host or Context
* or:
* <Valve className="org.apache.catalina.valves.RequestHeaderValve"
header="Referer"
deny="*.mydomain.com, *localhost*"/>
* then you can forbidden someone open the link from *.mydomain.com or
localhost
* </p>
* <p>Copyright: Apache License Version 2.0 </p>
* <p>Company: lizongbo</p>
* @author lizongbo @ gmail.com
* @version 1.0
*/
public final class RequestHeaderValve
extends RequestFilterValve {
private String header = "";
public void invoke(Request request, Response response) throws
IOException,
ServletException {
String headervalue = request.getRequest().getHeader(getHeader());
headervalue = headervalue != null ? headervalue : "";
process(headervalue, request, response);
}
public String getHeader() {
return header;
}
public void setHeader(String header) {
this.header = header;
}
}