Great, thank you. but this works only with PAX-WEB8, correct?
Richard Am Do., 14. Juli 2022 um 15:42 Uhr schrieb Grzegorz Grzybek < [email protected]>: > > > czw., 14 lip 2022 o 15:34 Richard Hierlmeier <[email protected]> > napisał(a): > >> The only requirement is that a servlet that is deployed via http >> whiteboard has the same session as the servlet that is part of the WAB. >> > > In order to whiteboard-register a servlet to the same context which is > backing a WAB, you have to register the servlet pointing to relevant > context. By default, the selector is: > > osgi.http.whiteboard.context.select = (osgi.http.whiteboard.context.name > =default) > > You just have to register a servlet with: > > osgi.http.whiteboard.context.select = > (osgi.http.whiteboard.context.path=/path) > > where "/path" is the same value as in Web-ContextPath header of the WAB. > > Check AbstractWabWhiteboardConflictIntegrationTest.java > <https://github.com/ops4j/org.ops4j.pax.web/blob/web-8.0.6/pax-web-itest/pax-web-itest-container/pax-web-itest-container-common/src/main/java/org/ops4j/pax/web/itest/container/war/AbstractWabWhiteboardConflictIntegrationTest.java#L55-L69>[1] > - it's a filter registration, but the principle is the same. > > regards > Grzegorz Grzybek > === > [1]: > https://github.com/ops4j/org.ops4j.pax.web/blob/web-8.0.6/pax-web-itest/pax-web-itest-container/pax-web-itest-container-common/src/main/java/org/ops4j/pax/web/itest/container/war/AbstractWabWhiteboardConflictIntegrationTest.java#L55-L69 > > >> >> Richard >> >> Am Do., 14. Juli 2022 um 15:13 Uhr schrieb Grzegorz Grzybek < >> [email protected]>: >> >>> Hello >>> >>> czw., 14 lip 2022 o 15:05 Richard Hierlmeier <[email protected]> >>> napisał(a): >>> >>>> How can I define the ServletContextHelper for a WAB? I can not find >>>> any hint in the R7 spec. >>>> >>> >>> You ... can't. There's nothing at all about ServletContextHelper concept >>> (Whiteboard) in chapter 128 (WABs). >>> >>> Pax Web 8 explicitly defines special class >>> org.ops4j.pax.web.extender.war.internal.WebApplicationHelper, which extends >>> org.ops4j.pax.web.service.spi.context.DefaultServletContextHelper which >>> extends org.osgi.service.http.context.ServletContextHelper. >>> >>> Such implementation is specially crafted to: >>> - provide org.osgi.service.http.context.ServletContextHelper >>> - handle WAR scenarios related to resource access >>> >>> It is then set inside >>> org.ops4j.pax.web.service.spi.model.OsgiContextModel - a common "context" >>> representation for HttpService, Whiteboard and WAB scenarios. >>> >>> Out of curiosity - do you have any special requirement that a WAB needs >>> custom context? >>> >>> Mind that org.osgi.service.http.context.ServletContextHelper in >>> Whiteboard has two responsibilities: >>> - security (WABs/WARs have better ways to deal with this) >>> - resource access (WABs/WARs have standard resource access methods >>> defined in the Servlets specification itself) >>> >>> regards >>> Grzegorz Grzybek >>> >>> >>>> >>>> Richard >>>> >>>> Am Mo., 27. Juni 2022 um 16:15 Uhr schrieb Grzegorz Grzybek < >>>> [email protected]>: >>>> >>>>> Hi >>>>> >>>>> >>>>> pon., 27 cze 2022 o 16:04 Richard Hierlmeier < >>>>> [email protected]> napisał(a): >>>>> >>>>>> Hi Grzegorz. >>>>>> >>>>>> thank you for clarification. Unfortunately I can not upgrade to Karaf >>>>>> 4.4 the next time. >>>>>> What would happen when I define the session cookie name in jetty.xml >>>>>> and not in the wab? >>>>>> >>>>> >>>>> To answer more precisely, I'd have to check your current configuration >>>>> - what WAB are you deploying and what are the registration properties of >>>>> the HttpWhiteboard servlet. Only then I could check (going back to Karaf >>>>> 4.3.7) what may be the issue related to context configuration... >>>>> >>>>> regards >>>>> Grzegorz Grzybek >>>>> >>>>> >>>>>> >>>>>> >>>>>> Richard >>>>>> >>>>>> >>>>>> Am Mo., 27. Juni 2022 um 12:02 Uhr schrieb Grzegorz Grzybek < >>>>>> [email protected]>: >>>>>> >>>>>>> Hello >>>>>>> >>>>>>> Unfortunately, only with Pax Web 8 (used in Karaf 4.4+) we've >>>>>>> refactored the WAB/HttpService/Whiteboard inter operation. Pax Web 8 >>>>>>> allows >>>>>>> mixing web elements coming from different "origins" (whiteboard >>>>>>> registration, direct registration using HttpService or >>>>>>> web.xml/web-fragment.xml approach from WABs). >>>>>>> >>>>>>> So in Pax Web 8 you should be able to reconfigure the session cookie >>>>>>> name and there servlets registered using Whiteboard targetting the same >>>>>>> context (as in WAB) should use the same session configuration. >>>>>>> >>>>>>> Also - Pax Web 8 implements correctly the session separation >>>>>>> mentioned in >>>>>>> https://docs.osgi.org/specification/osgi.cmpn/7.0.0/service.http.whiteboard.html#service.http.whiteboard.servletcontext >>>>>>> : >>>>>>> >>>>>>> Http Sessions are not shared amongst servlets registered with >>>>>>>> different ServletContextHelpers. That is, HttpRequest.getSession calls >>>>>>>> must >>>>>>>> provide different sessions per associated ServletContextHelper >>>>>>>> >>>>>>> >>>>>>> So even if two whiteboard servlets are registered to the same target >>>>>>> servlet context, but using different ServletContextHelper, they'll use >>>>>>> different session configuration. >>>>>>> >>>>>>> kind regards >>>>>>> Grzegorz Grzybek >>>>>>> >>>>>>> pon., 27 cze 2022 o 11:33 Richard Hierlmeier < >>>>>>> [email protected]> napisał(a): >>>>>>> >>>>>>>> >>>>>>>> My application runs in Karaf 4.3.7. I have a web application that >>>>>>>> is deployed as wab application bundle (wab). This web application >>>>>>>> changes >>>>>>>> the session cookie name in >>>>>>>> javax.servlet.ServletContextListener#contextInitialized(). >>>>>>>> >>>>>>>> In another bundle I have a servlet that is defined with >>>>>>>> HttpWhiteBoard. >>>>>>>> The servlets from the wab and the servlets from HttpWhiteBoard have >>>>>>>> different http sessions (because they have different session cookie >>>>>>>> names >>>>>>>> in the ServletContext). >>>>>>>> >>>>>>>> Is it possible to configure the session cookie for Servlets that >>>>>>>> are deployed via HttpWhiteBoard? >>>>>>>> >>>>>>>> Regards >>>>>>>> >>>>>>>> Richard >>>>>>>> >>>>>>>>
