Vaadin + Shiro + CDI + Push

Hello everybody,
I’m a little stuck here with the above mentioned combination. Over the last couple of days I tried everything to make this work in a JavaEE app on wildfly (10.0.0), but whatever tipp I came across and whatever tutorial - it’s just not working.

There were several approaches but the most promising so far was to define the VaadinCDIServlet in the web.xml and add there the “ShiroInterceptor” from atmosphere. Everything was working, except whenever I tried to inject a “SessionScoped” bean, I got an exception which said “No active contexts for scope type javax.enterprise.context.SessionScoped”. As I would probably need some session scoped beans, this is obviously no solution. The funny thing is: If I rely on the auto loading of the servlet (which basically means to delete the web.xml and BTW does nothing special either what I saw so far from the source code) everything is working perfectly, except: I have no ShiroInterceptor. Is there something “magically” I oversaw?

So my first question is: Does anybody have this combination working and if yes, do you use the ShiroInterceptor and how did you make that work?

Second question: After some searching I did come across the new “WEBSOCKET_XHR” transport of Vaadin which means Server → Client: Websocket, Client → Server: XHR. So this would basically mean I could just use this transport and get back to the Shiro filter, right? Or are there any concerns about this solution?

Thanks in advance.


My understanding is that you need to use “WEBSOCKET_XHR” with Push in order to get Shiro setup working in your case.