Skip to content

Instantly share code, notes, and snippets.

@dbonillaf
Created February 8, 2011 16:34
Show Gist options
  • Save dbonillaf/816701 to your computer and use it in GitHub Desktop.
Save dbonillaf/816701 to your computer and use it in GitHub Desktop.
Permitiendo el Cross-Site Request con Restlet
/**
* Un ServerResource se instancia primero, usando el constructor vacio, por defecto. Después se llama al método
* init(Context, Request, Response) que hace un set de dichos atributos. Para interceptar dicha creación se tiene
* que sobrescribir el método doInit que, poe defecto, no hace nada. Hacemos esto para no tener que implementarlo
* en cada método (GET, POST, PUT...).
*
* @throws org.restlet.resource.ResourceException
*
*/
@Override
protected void doInit() throws ResourceException {
final String RESTLET_HTTP_HEADERS_KEY = "org.restlet.http.headers";
Response response = getResponse();
Form responseHeaders = (Form) response.getAttributes().get(RESTLET_HTTP_HEADERS_KEY);
if (responseHeaders == null) {
responseHeaders = new Form();
getResponse().getAttributes().put(RESTLET_HTTP_HEADERS_KEY, responseHeaders);
}
/**
* Mediante la inscripción de esta cabecera, el navegador Firefox nos permite hacer peticiones Cross-Site
* (un recurso de un dominio, pide recursos de otro dominio).
* NOTA: en el caso de que se quiera trabajar con cookies (Access-Control-Allow-Credentials) no se pueden
* utilizar los wildcards a comodines sino que hay que poner la lista de sitios autorizados separados por una
* coma. Se puede interceptar el request y componer la lista de forma dinamica con una lista negra, por ejemplo
* https://developer.mozilla.org/En/HTTP_Access_Control
*/
responseHeaders.add("Access-Control-Allow-Origin", "*");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment