cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sergey Beryozkin <sberyoz...@gmail.com>
Subject Re: CORS
Date Fri, 18 Nov 2011 16:48:08 GMT
Hi Benson
On 18/11/11 00:25, Benson Margulies wrote:
> Serg,
>
> To contribute code, it's preferred, if possible, to attach it to a JIRA.
>
I was thinking of simply documenting it for a start as I'm not sure 
where to add this code to. I guess I'd like it to go to a sep module but 
at this stage creating a module for keeping two simple filters may be a 
bit early.
We can have another extension package added for a start to the rs 
frontend, and move it elsewhere, but I'm a bit cautious about it too as 
the frontend module is becoming quite monolitic and it will need to be 
split in time too, so I'm thinking that may be we just doc it and users 
will simply copy & paste the simple code, same way we started with JSONP 
code fragments.


Sergey

> --benson
>
>
> On Thu, Nov 17, 2011 at 12:39 PM, sergkorney<sergkorney@gmail.com>  wrote:
>> here it is:
>>
>> public class JaxrsCorsInputFilter implements RequestHandler {
>>
>>         final static String HEADER_ORIGIN = "origin";
>>
>>         @Context
>>     private HttpHeaders headers;
>>
>>         private List<String>  allowedOrigins;
>>
>>     public void setAllowedOrigins(List<String>  allowedOrigins) {
>>                 this.allowedOrigins = allowedOrigins;
>>         }
>>
>>         @Override
>>         public Response handleRequest(Message m, ClassResourceInfo resourceClass)
{
>>         if ("OPTIONS".equals(m.get(Message.HTTP_REQUEST_METHOD))) {
>>                 OperationResourceInfo opResInfo =
>> m.getExchange().get(OperationResourceInfo.class);
>>                 if (opResInfo != null) { // OPTIONS method defined in service bean
>>                         return null; // continue handling
>>                 }
>>             return Response.status(Status.SERVICE_UNAVAILABLE).build();
>>         }
>>         List<String>  values = headers.getRequestHeader(HEADER_ORIGIN);
>>         if (values != null ) {
>>                 boolean allowed = true;
>>                 if (allowedOrigins != null) {
>>                         allowed = allowedOrigins.containsAll(values);
>>                 }
>>                 if (allowed) {
>>                 m.getExchange().put(HEADER_ORIGIN, values);
>>                 }
>>         }
>>                 return null;
>>         }
>>
>> }
>>
>>
>> --
>> View this message in context: http://cxf.547215.n5.nabble.com/CORS-tp4970153p5001897.html
>> Sent from the cxf-dev mailing list archive at Nabble.com.
>>


-- 
Sergey Beryozkin

http://sberyozkin.blogspot.com

Talend Community Coders
http://coders.talend.com/

Mime
View raw message