Ich habe versucht, einen Sitzungsfilter zu schreiben, um die Berechtigungsprüfung in meiner App-Engine-Web-App zu zentralisieren.
Mein Filter sieht folgendermaßen aus:
@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);
}
}
Aber wenn ich app engine dev server starte, werde ich mit dieser Ausnahme begrüßt: "org.mortbay.jetty.request kann nicht auf javax.servlet.http.httpservletresponse übertragen werden". Was mache ich falsch?