Ignore:
Timestamp:
Feb 8, 2015, 5:09:00 PM (9 years ago)
Author:
casties
Branch:
default
Children:
92:aadf8760216d, 94:fcb6fe10e08c
Message:

let CORS be handled by Restlet 2.3 CorsFilter?.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/de/mpiwg/itgroup/annotations/restlet/AnnotatorResourceImpl.java

    r90 r91  
    4545import org.json.JSONException;
    4646import org.json.JSONObject;
     47import org.restlet.data.Header;
    4748import org.restlet.data.Status;
    48 import org.restlet.data.Header;
    4949import org.restlet.representation.Representation;
    50 import org.restlet.resource.Options;
    5150import org.restlet.resource.ServerResource;
    5251import org.restlet.util.Series;
     
    7776    private AnnotationStore store;
    7877
    79     protected String getAllowedMethodsForHeader() {
    80         return "OPTIONS,GET,POST";
    81     }
    82 
    8378    protected AnnotationStore getAnnotationStore() {
    8479        if (store == null) {
     
    106101            return null;
    107102        }
    108     }
    109 
    110     /**
    111      * Handle options request to allow CORS for AJAX.
    112      *
    113      * @param entity
    114      */
    115     @Options
    116     public void doOptions(Representation entity) {
    117         logger.fine("AnnotatorResourceImpl doOptions!");
    118         setCorsHeaders();
    119     }
    120 
    121     /**
    122      * set headers to allow CORS for AJAX.
    123      */
    124     protected void setCorsHeaders() {
    125         Series<Header> responseHeaders = (Series<Header>) getResponse().getHeaders();
    126         if (responseHeaders == null) {
    127             responseHeaders = new Series<Header>(Header.class);
    128             getResponse().getAttributes().put("org.restlet.http.headers", responseHeaders);
    129         }
    130         responseHeaders.add("Access-Control-Allow-Methods", getAllowedMethodsForHeader());
    131         // echo back Origin and Request-Headers
    132         @SuppressWarnings("unchecked")
    133         Series<Header> requestHeaders = (Series<Header>) getRequest().getAttributes().get("org.restlet.http.headers");
    134         String origin = requestHeaders.getFirstValue("Origin", true);
    135         if (origin == null) {
    136             responseHeaders.add("Access-Control-Allow-Origin", "*");
    137         } else {
    138             responseHeaders.add("Access-Control-Allow-Origin", origin);
    139         }
    140         String allowHeaders = requestHeaders.getFirstValue("Access-Control-Request-Headers", true);
    141         if (allowHeaders != null) {
    142             responseHeaders.add("Access-Control-Allow-Headers", allowHeaders);
    143         }
    144         responseHeaders.add("Access-Control-Allow-Credentials", "true");
    145         responseHeaders.add("Access-Control-Max-Age", "60");
    146103    }
    147104
Note: See TracChangeset for help on using the changeset viewer.