Created
February 8, 2011 16:34
-
-
Save dbonillaf/816701 to your computer and use it in GitHub Desktop.
Permitiendo el Cross-Site Request con Restlet
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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