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<sergkor...@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/