git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jira] [Assigned] (ARIES-1867) ContainerResponseFilter not fired for SSE endpoint


     [ https://issues.apache.org/jira/browse/ARIES-1867?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Carlos Sierra reassigned ARIES-1867:
------------------------------------

    Assignee: Carlos Sierra

> 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
>            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)