KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
This question is related to a previous one on writing a session timeout handler . The answer in that thread involved accessing various session-scoped managed beans from the servlet. The recommendation (as seen here ) is to do this in the filter: HttpSession session = request.getSession(false); User user = (session != null) ? (User) session.getAttribute("user") : null; Presumably this fetches a session bean of class User . The problem is this doesn't work. What goes wrong are that the beans are there in the session attributes, but they are wrapped by Weld facilities. I wrote the doFilter() method as follows: public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; String sp = req.getServletPath(); System.out.println("------------------------"); System.out.println("doFilter(): " + sp); if (!sp.startsWith("/javax")) { // eliminates many requests HttpSession session = req.getSession(); Enumeration<String> en = session.getAttributeNames(); int count = 0; while (en.hasMoreElements()) { String e = en.nextElement(); System.out.println("Attribute " + ++count + ": " + e); } } chain.doFilter(request, response); } When this dumps out the session attributes, I typically get something like this: INFO: ------------------------ INFO: doFilter(): /Display.xhtml INFO: Attribute 1: org.jboss.weld.context.http.Htt
Tags (comma-separated)
Save Edits
Cancel