关于Tomcat服务器过滤的问题,高手请进!

love521bean 2008-09-22 09:45:35
想用Tomcat对输入的链接进行过滤,提取referer头,然后进行检查,用这种方式进行防盗链
具体的方法为:
在tomcat的conf中的server.xml中添加了
<Valve className="org.apache.catalina.valves.RequestHeaderValve" header="Referer" deny="*.mydomain.com, *localhost*"/>

其中RequestHeaderValve是自己写的一个类:

package org.apache.catalina.valves;

import java.io.IOException;
import javax.servlet.ServletException;
import org.apache.catalina.connector.Request;
import org.apache.catalina.connector.Response;


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());
System.out.println("$$$$$$$$$$$$$" + headervalue);
String URI = request.getRequestURI();
String referer = request.getHeader("referer");
System.out.println("$$$$$$$$$$$$$" + referer);
String sitePart = request.getServerName() + "/upload";
System.out.println("1=======================" + URI + "--------------------------");
System.out.println("12=======================" + sitePart + "--------------------------");
if(URI.startsWith("/upload")){
if(referer == null || !referer.startsWith("http://" + request.getServerName())){
System.out.println("3+++++++++++++++++++This is NG!++++++++++++++++++++++++++");
return;

}else{
System.out.println("4-------------------This is OK!--------------------------");
}
}else{


}

System.out.println("goout~");

headervalue = headervalue != null ? headervalue : "";

System.out.println("$$$$$$$$$$$$$" + headervalue);
process(headervalue, request, response);

}

public String getHeader() {
return header;
}

public void setHeader(String header) {
this.header = header;
}

}

运行是可以的,但是不管输入什么网址都进入不了网站,
请问invoke以后用什么方式可以正常返回,继续执行接下来的操作!

在线等~~~
...全文
123 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
love521bean 2008-09-23
  • 打赏
  • 举报
回复
知道调用process 上面的代码也调用了,
但是不行啊,始终是错误的。。

不清楚process到底是来做什么的。
usherlight 2008-09-23
  • 打赏
  • 举报
回复
调用process

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧