Failed to access session data in servlet filter on application engine server

I tried to write a session filter to centralize the authorization check in my web application.

My filter looks like this:

@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); } } 

But when I start the application engine developer server, I welcome this exception: "org.mortbay.jetty.request cannot be passed to javax.servlet.http.httpservletresponse". What am I doing wrong?

+4
source share
1 answer

You are trying to pass a request object as a response.

change as follows

 HttpServletResponse httpResp = (HttpServletResponse) response; 
+14
source

All Articles