[ https://issues.apache.org/jira/browse/ARIES-1867?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16699249#comment-16699249 ]
Carlos Sierra commented on ARIES-1867: -------------------------------------- Hi again [~tomq42], I have pushed a couple of tests to the whiteboard test suite showing the behaviour of the whiteboard w.r.t resources returning {{void}} results and {{ContainerResponseFilter}}. It seems that, in general, the whiteboard is properly registering the filters for the resources that return {{void}} but, as you found out, these filters are not invoked in the case of the SSE {{subscribe}} methods. Could you please verify these assumptions are correct? My current assumption is that CXF is not handling these properly. I will try and verify that for the 3.2.5 version, which is the one that the whiteboard is currently using. Thx for your report. Bests. Carlos. > ContainerResponseFilter not fired for SSE endpoint > -------------------------------------------------- > > Key: ARIES-1867 > URL: https://issues.apache.org/jira/browse/ARIES-1867 > Project: Aries > Issue Type: Bug > Components: jax-rs-whiteboard > Affects Versions: jax-rs-whiteboard-1.0.2 > Reporter: Tom Quarendon > Assignee: Carlos Sierra > Priority: Blocker > Attachments: CORSFilter.java, Server.java, TestService3.java > > > I have a resource class such as the following: > {code:java} > @Path("events") > @JaxrsResource > public class EventsResource { > private Sse sse; > private SseBroadcaster eventBroadcaster; > @Context > public void setSse(Sse sse) { > this.sse = sse; > this.eventBroadcaster = sse.newBroadcaster(); > } > @GET > @Produces(MediaType.SERVER_SENT_EVENTS) > public void suscribeToEvents(@Context SseEventSink eventSink) { > eventBroadcaster.register(eventSink); > } > } > {code} > > > In addition, I have a CORS filter: > > {code:java} > @Component(immediate=true) > @Provider > @JaxrsExtension > public class CORSFilter implements ContainerResponseFilter { > @Override > public void filter(ContainerRequestContext requestContext, > ContainerResponseContext responseContext) throws IOException { > System.out.println("CORSFilter for > "+requestContext.getUriInfo().getPath()); > MultivaluedMap<String, Object> headers = responseContext.getHeaders(); > headers.add("Access-Control-Allow-Origin", > requestContext.getHeaderString("Origin")); > ... > {code} > > The CORS filter gets fired on all requests as I expect, _except_ for ones to > the EventResource.subscribeToEvents method. Hence browsers complain when > receiving SSE events. > This used to work fine with jersey as the JAXRS implementation. CORS filter > got called for the EventsResource.subscribeToEvents call. > I've no idea whether this is a jaxrs-whiteboard level issue, or a CXF level > issue. I will try and come up with a plain CXF test of the same thing for > comparison. > -- This message was sent by Atlassian JIRA (v7.6.3#76005)