Java Servlet Filter没有传递POST请求+ ZOPE

时间:2012-02-24 09:43:23

标签: java servlets proxy servlet-filters zope

我使用Jetty Transparent Proxy Servlet与ZOPE(python)集成。这允许我应用各种java过滤器,而不会搞乱ZOPE及其扩展。我们主要使用它进行身份验证和分配权限。

它非常适用于ZOPE提供的常规网页(假设GET请求)但在处理ZOPE上托管的POST表单时无效。

我发现请求通过过滤器链正确传递(路上还有更多的过滤器)最后出现问题。我可以观察到达ZOPE的请求(使用请求日志),但响应永远不会回来。我在ZOPE上调查任何内容的能力有限 - 只能查看其请求日志。

它不是代理错误,因为当所有过滤器关闭时一切正常。

我可以对请求/响应对象执行某些操作吗? 我在过滤器中遗漏了什么吗? 我在哪里可以挖掘更多?

以下是我使用过滤器的示例。

public class AuthFilter implements Filter{
   @Override
   public void doFilter(ServletRequest req, ServletResponse res,
        FilterChain chain) throws IOException, ServletException {
    HttpServletRequest request = (HttpServletRequest) req;
    HttpServletResponse response = (HttpServletResponse) res;
    HttpSession session = request.getSession();

       String secret = request.getParameter("cessotk");
       if ( secret != null && secret.equals (SECRET_TOKEN ) ){
           log ("Discovered secret user");

           session.setAttribute(AUTH_PARAM, true);
           AuthUser secretUser = new AuthUser();
           secretUser.setUsername("SECRET_SYSTEM_USER");

           session.setAttribute(AUTH_USER_KEY, secretUser );
           chain.doFilter(request, response);
       }
    }
}

0 个答案:

没有答案