Перехват HTTP-запросов на сервере Java - PullRequest
1 голос
/ 28 сентября 2010

Мне нужно реализовать что-то вроде фильтра или прослушивателя, который перехватывает HTTP-запросы и получает заголовки HTTP для различных целей.

Я использую Java, сервер приложений Jboss и веб-сервисы. Я хочу, чтобы эта система фильтрации была выполнена до вызова Web-сервисов - думал об аспектах, но они не содержат связанных с HTTP вещей. После фильтра должен быть выполнен сервисный звонок.

Обработчики Jax-WS у меня тоже не работают, так как они содержат только полезную нагрузку SOAP.

Есть идеи?

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 28 сентября 2010

не можете ли вы создать фильтр сервлетов, который перехватывает все запросы, поступающие на ваш движок веб-сервиса? Если вы используете Axis или любой другой движок SOAP, я надеюсь, что вы сможете создать фильтр, который будет перехватывать все запросы, поступающие к основному сервлету, предоставляемому движком SOAP.

 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);
}
0 голосов
/ 28 сентября 2010

Используйте libpcap и интерфейс Java jNetPcap .

...