我正在尝试编写一个会话过滤器来集中我的应用引擎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);
}
}
但是当我启动app engine dev服务器时,我遇到了这个例外:“org.mortbay.jetty.request不能转换为javax.servlet.http.httpservletresponse”。 我究竟做错了什么?
您正在尝试将“请求”对象转换为响应。
改变如下
HttpServletResponse httpResp = (HttpServletResponse) response;