I know that the JAX-RS whiteboard spec took a while to become a reality, but I’m really glad to hear that it is working well for you, and that it has helped to clean things up.
Best Regards, Tim > On 2 Jan 2019, at 21:35, Oliver Schweitzer <oschweit...@me.com> wrote: > > Hi, > > Ok, thanks to the hints itt I have solved my two most pressing issues, with > some links/insights below. > > JAAS: > > This helped me immensely to bridge JAAS and JAX-RS: > https://github.com/andyphillips404/awplab-core/blob/master/rest/service/src/main/java/com/awplab/core/rest/service/security/BasicAuthKarafSecurityRequestFilter.java > > <https://github.com/andyphillips404/awplab-core/blob/master/rest/service/src/main/java/com/awplab/core/rest/service/security/BasicAuthKarafSecurityRequestFilter.java> > > The Cxf JAASLoginInterceptor and the Filter that uses it have issues (for me) > I didn’t want to solve for my new Jax-Rs only setup, as illustrated by this > thread: > http://karaf.922171.n3.nabble.com/Security-Subject-from-AccessControlContext-is-null-when-using-JAAS-and-CXF-JAASAuthenticationFilter-td4037821.html > > <http://karaf.922171.n3.nabble.com/Security-Subject-from-AccessControlContext-is-null-when-using-JAAS-and-CXF-JAASAuthenticationFilter-td4037821.html> > > Cors: > > This here helped me understand how to do Cors correctly including Preflight: > https://github.com/resteasy/Resteasy/blob/master/resteasy-core/src/main/java/org/jboss/resteasy/plugins/interceptors/CorsFilter.java > > <https://github.com/resteasy/Resteasy/blob/master/resteasy-core/src/main/java/org/jboss/resteasy/plugins/interceptors/CorsFilter.java> > > I just added (JAX-RS)Features and ConfigAdmin, some DS and Jax-rs Whiteboard > annotations (the spec really helps), and am now in happy component land. > > So it really looks like that the new Jax-rs stuff in R7 helps me with cleaner > code, dependency streamlining and modularity. > > Thanks, especially to Tim for the original pointer to the Aries > implementation and a happy new year. > > Best regards, > > Oliver > > > Le 2 janv. 2019 à 13:13, Tim Ward <tim.w...@paremus.com > <mailto:tim.w...@paremus.com>> a écrit : > >>>> 1. Some of the providers I configure programmatically implement JAX-RS >>>> interfaces and are provided by CXF or other frameworks, >>>> e.g. CrossOriginResourceSharingFilter, MultipartProvider, >>>> JacksonJsonProvider, WebApplicationExceptionMapper. >>>> How do I make these known to my JAX-RS Whiteboard (Whiteboard service) >>>> ?Just derive a new class, annotate as a Component and JaxrsExtension? >> >> You have several options here, some of which have already been described, >> but there are some which have been overlooked. >> >> Some extensions (such as support for Jackson’s JSON) are already available >> for the whiteboard. For example this integration project comes from Aries >> <https://github.com/apache/aries-jax-rs-whiteboard/tree/master/integrations/jackson>. >> You can make use of the JAX-RS whiteboard’s dependency system to build your >> own JAX-RS feature which you then rely on. >> >> For example: >> >> @Component >> @JaxrsName(“myFeature") >> @JaxrsExtension >> public class MyFeature implements Feature { >> >> @Override >> public boolean configure(FeatureContext fc) { >> fc.register(CrossOriginResourceSharingFilter.class); >> } >> >> } >> >> You can then add requirements for this feature to your resources (ideally >> using config admin) using the osgi.jaxrs.extension.select property described >> in >> https://osgi.org/specification/osgi.cmpn/7.0.0/service.jaxrs.html#service.jaxrs.common.properties >> >> <https://osgi.org/specification/osgi.cmpn/7.0.0/service.jaxrs.html#service.jaxrs.common.properties> >> >> >>>> 2. Swagger2Feature, JAASLoginInterceptor, FastInfosetFeature, GZIPFeature, >>>> CORSPreflightInterceptor (my >>>> code, extends AbstractPhaseInterceptor<Message>) are provided by CXF and >>>> implement CXF interfaces. I gather I can't use these directly with the >>>> Whiteboard? What do I do with those? Reimplement/port to JAX-RS? >> >> There are ways to make these existing features work, but it is a much better >> idea to port to the standard JAX-RS APIs, otherwise you’ll end up coupled to >> CXF unnecessarily. >> >> Best Regards, >> >> Tim >> >> >>> On 28 Dec 2018, at 17:51, Jean-Baptiste Onofré <j...@nanthrax.net >>> <mailto:j...@nanthrax.net>> wrote: >>> >>> Hi, >>> >>> you can take a look on the Karaf JAXRS Whiteboard sample: >>> >>> https://github.com/apache/karaf/pull/697 >>> <https://github.com/apache/karaf/pull/697> >>> >>> I gonna merge it tonight or tomorrow morning. >>> >>> Regards >>> JB >>> >>> On 28/12/2018 16:23, Oliver Schweitzer wrote: >>>> Hi, >>>> >>>> I have an existing REST JAX-RS Application based on CXF mechanics. that >>>> is the Resources are lifecycle managed by a programmatically setup >>>> JAXRSServerFactoryBean, which itself gets started and stopped by an >>>> immediate @Component >>>> >>>> Now I want to build new entrypoints (and eventually migrate old ones) >>>> using the JAX-RS whiteboard, as discussed e.g. >>>> here >>>> http://karaf.922171.n3.nabble.com/Aries-JAX-RS-Whiteboard-td4054440.html >>>> <http://karaf.922171.n3.nabble.com/Aries-JAX-RS-Whiteboard-td4054440.html>, >>>> and go full dynamically discovered declarative services with my REST API >>>> and application. >>>> >>>> The basic setup (without extensions) works very well, now I want to >>>> replace all my programmatic CXF configuration with @Components annotated >>>> with @JaxrsExtension, use only JAX-RS/Whiteboard mechanics and no more >>>> CXF specialties if possible. >>>> >>>> Now for the questions: >>>> >>>> 1. Some of the providers I configure programmatically implement JAX-RS >>>> interfaces and are provided by CXF or other frameworks, >>>> e.g. CrossOriginResourceSharingFilter, MultipartProvider, >>>> JacksonJsonProvider, WebApplicationExceptionMapper. >>>> How do I make these known to my JAX-RS Whiteboard (Whiteboard service) >>>> ?Just derive a new class, annotate as a Component and JaxrsExtension? >>>> >>>> 2. Swagger2Feature, JAASLoginInterceptor, FastInfosetFeature, GZIPFeature, >>>> CORSPreflightInterceptor (my >>>> code, extends AbstractPhaseInterceptor<Message>) are provided by CXF and >>>> implement CXF interfaces. I gather I can't use these directly with the >>>> Whiteboard? What do I do with those? Reimplement/port to JAX-RS? >>>> >>>> Best regards, >>>> >>>> Oliver >>>> >>>> >>>> >>>> >>> >>> -- >>> Jean-Baptiste Onofré >>> jbono...@apache.org <mailto:jbono...@apache.org> >>> http://blog.nanthrax.net <http://blog.nanthrax.net/> >>> Talend - http://www.talend.com <http://www.talend.com/> >>