拦截服务器java中的HTTP请求

时间:2010-09-28 19:22:17

标签: java web-services http jax-ws interceptor

我需要实现像过滤器或监听器之类的东西,它拦截HTTP请求并为各种目的检索HTTP标头。

我使用Java,Jboss应用服务器和Web服务。我希望在Web服务调用之前执行此过滤系统 - 正在考虑方面,但它们不保存与HTTP相关的内容。过滤后,应该进行服务调用。

Jax-WS处理程序对我来说不起作用,因为它们只保存SOAP有效负载。

有什么想法吗?

提前致谢。

2 个答案:

答案 0 :(得分:3)

你能不能创建一个servlet过滤器来拦截所有进入你的webservice引擎的请求?如果您使用的是Axis或任何其他SOAP引擎,我希望您能够创建一个过滤器来拦截进入SOAP引擎提供的主Servlet的所有请求。

 public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException
  {
    HttpServletRequest httpRequest=(HttpServletRequest)request;
    HttpServletResponse httpResponse=(HttpServletResponse)response;
       Enumeration headerNames = httpRequest.getHeaderNames();
        while(headerNames.hasMoreElements()) {
          String headerName = (String)headerNames.nextElement();
          out.println(headerName);
          out.println(request.getHeader(headerName));
        }
       chain.doFilter(request,response);
}

答案 1 :(得分:0)

使用libpcap和Java界面jNetPcap