Hi Thai, as this is an open source community, you can take control of the ETA of this fix, by providing us with a Patch for it :)
best regards, Achim Am Di., 18. Sep. 2018 um 18:26 Uhr schrieb Nhut Thai Le <n...@castortech.com >: > Look like this is a known issue: > https://ops4j1.jira.com/projects/PAXWEB/issues/PAXWEB-1123. Is there an > ETA for this ? > > Thai > > On Thursday, September 13, 2018 at 4:05:15 PM UTC-4, Nhut Thai Le wrote: >> >> Hello, >> >> I have 2 bundles, one hosts a few servlets and resource services, the >> other hosts my servlet filters. The idea is to have the filters shared >> between all bundles. So, for each bundle (not the one contain the servlet >> filters) I create a ServletContextHelper: >> @Component( >> service = ServletContextHelper.class, >> scope = ServiceScope.SINGLETON, >> property = { >> "osgi.http.whiteboard.context.name >> =HomeServletContextHelper", >> "osgi.http.whiteboard.context.path=/home" >> }) >> public class HomeServletContextHelper extends ServletContextHelper { >> @Override >> public URL getResource(String name) { >> BundleContext bundleContext = FrameworkUtil.getBundle(this. >> getClass()).getBundleContext(); >> Bundle bundle = bundleContext.getBundle(); >> if ((name != null) && (bundle != null)) { >> if (name.startsWith("/")) { >> name = name.substring(1); >> } >> >> return bundle.getEntry(name); >> } >> return null; >> } >> } >> >> Then in my servlet (in the same bundle as my ServletContextHelper above) >> I tell it to use the ServletContextHelper: >> @Component( >> service = Servlet.class, >> property= { >> "osgi.http.whiteboard.servlet.pattern=/token" >> , >> "osgi.http.whiteboard.context.select=( >> osgi.http.whiteboard.context.name=HomeServletContextHelper)" >> } >> ) >> public final class AccessTokenServlet extends HttpServlet {...} >> >> My resource service (in the same bundle as my ServletContextHelper above) >> is also set to use the same ServletContextHelper: >> @Component(service = IndexPageResourceService.class, >> property = { >> "osgi.http.whiteboard.resource.pattern=/", >> "osgi.http.whiteboard.resource.prefix=/index.html", >> "osgi.http.whiteboard.context.select=( >> osgi.http.whiteboard.context.name=HomeServletContextHelper)" >> } >> ) >> public class IndexPageResourceService {} >> >> and finally my servlet filter (in the other bundle): >> @Component( >> service = Filter.class, >> scope = ServiceScope.PROTOTYPE, >> property = { >> "osgi.http.whiteboard.filter.name >> =AuthenticationFilter", >> "osgi.http.whiteboard.filter.pattern=/*", >> "osgi.http.whiteboard.context.select=( >> osgi.http.whiteboard.context.name=*)" >> } >> ) >> public final class AuthenticationFilter implements Filter {...} >> >> Here the filter is configured to be used by ANY servlet context helper >> (*) but it never got triggered. Interestingly, if i change the context >> selection of this filter to: "osgi.http.whiteboard.context.select=( >> osgi.http.whiteboard.context.name=HomeServletContextHelper)" then the >> filter is triggered when i request for /home or /home/token. >> So the problem is the * not get interpreted as ANY but rather a name that >> never match. Is there a work around for this? >> >> -- > -- > ------------------ > OPS4J - http://www.ops4j.org - ops4j@googlegroups.com > > --- > You received this message because you are subscribed to the Google Groups > "OPS4J" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to ops4j+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- Apache Member Apache Karaf <http://karaf.apache.org/> Committer & PMC OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer & Project Lead blog <http://notizblog.nierbeck.de/> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> Software Architect / Project Manager / Scrum Master -- -- ------------------ OPS4J - http://www.ops4j.org - ops4j@googlegroups.com --- You received this message because you are subscribed to the Google Groups "OPS4J" group. To unsubscribe from this group and stop receiving emails from it, send an email to ops4j+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.