无法访问app engine dev服务器上的servlet过滤器中的会话数据

New*_*bie 4 java session google-app-engine servlets servlet-filters

我正在尝试编写一个会话过滤器来集中我的应用引擎Web应用程序中的授权检查.

我的过滤器看起来像这样:

@Override
public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain chain) throws IOException, ServletException {
    HttpServletRequest httpReq = (HttpServletRequest) request;
    HttpServletResponse httpResp = (HttpServletResponse) request;
    HttpSession session = httpReq.getSession();

    httpReq.setCharacterEncoding("UTF-8");
    httpResp.setCharacterEncoding("UTF-8");
    httpResp.setContentType("application/json");

    Boolean isAuthorized = (Boolean) session.getAttribute("isAuthorized");

    if (!isAuthorized || isAuthorized == null) {
        httpResp.sendError(HttpServletResponse.SC_UNAUTHORIZED);
    } else {
        chain.doFilter(request, response);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我启动app engine dev服务器时,我遇到了这个例外:"org.mortbay.jetty.request不能转换为javax.servlet.http.httpservletresponse".我究竟做错了什么?

ken*_*ohn 15

您正在尝试将"请求"对象转换为响应.

改变如下

HttpServletResponse httpResp = (HttpServletResponse) response;
Run Code Online (Sandbox Code Playgroud)