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.

Richard

Am Do., 14. Juli 2022 um 15:13 Uhr schrieb Grzegorz Grzybek <
gr.grzy...@gmail.com>:

> Hello
>
> czw., 14 lip 2022 o 15:05 Richard Hierlmeier <rhierlme...@googlemail.com>
> 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 <
>> gr.grzy...@gmail.com>:
>>
>>> Hi
>>>
>>>
>>> pon., 27 cze 2022 o 16:04 Richard Hierlmeier <rhierlme...@googlemail.com>
>>> 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 <
>>>> gr.grzy...@gmail.com>:
>>>>
>>>>> 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 <
>>>>> rhierlme...@googlemail.com> 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
>>>>>>
>>>>>>

Reply via email to