I implemented a servlet filter that is registered via http-whiteboard:
@Component(scope = ServiceScope.PROTOTYPE)
@HttpWhiteboardFilterPattern("/*") public class LogSessionFilter implements
Filter { private static AtomicInteger m_Counter = new AtomicInteger();
@Override public void doFilter(final ServletRequest request, final
ServletResponse response, final FilterChain chain) throws IOException,
ServletException { HttpServletRequest httpRequest =
(HttpServletRequest)request; HttpSession session =
httpRequest.getSession(true); m_Log.info("Session from servlet filter: " +
session.getId() + ", invocationCounter = " +
session.getAttribute("invocationCounter"));
session.setAttribute("invocationCounter",
Integer.toString(m_Counter.incrementAndGet())); chain.doFilter(httpRequest,
response); } } And a jax-rs Resource (deployed with cxf) that logs the
session information from the http request public class RestResourceHello {
private Logger m_Log = LoggerFactory.getLogger(getClass()); @Context
private HttpServletRequest m_Request; @GET @Path("hello")
@Produces("text/plain") public String sayHello() { HttpSession session =
m_Request.getSession(true); m_Log.info("Session for hello resource: " +
session.getId() + ", invocationCounter = " +
session.getAttribute("invocationCounter")); return "hello"; } } I get the
following output when accessing the rest service 09:42:46.919 INFO
[qtp1047761018-751] Session for hello resource:
node0g3wjy0l2u36812cqxe9tohdpz3, invocationCounter = null 09:42:46.993 INFO
[qtp1047761018-752] Session from servlet filter:
node0g3wjy0l2u36812cqxe9tohdpz3, invocationCounter = 19 09:43:12.572 INFO
[qtp1047761018-758] Session for hello resource:
node0g3wjy0l2u36812cqxe9tohdpz3, invocationCounter = null 09:43:12.655 INFO
[qtp1047761018-599] Session from servlet filter:
node0g3wjy0l2u36812cqxe9tohdpz3, invocationCounter = 20 It seems that
jax-rs resource has not access to the http session attributes., but the
session id is the same. Is this a bug? I deployed the sample on Karaf 4.3.6
and used cxf 3.4.5 Regards Richard
