Maison > Java > javaDidacticiel > Comment implémenter CORS dans une application Jersey JAX-RS ?

Comment implémenter CORS dans une application Jersey JAX-RS ?

Patricia Arquette
Libérer: 2024-12-19 12:20:16
original
415 Les gens l'ont consulté

How to Implement CORS in a Jersey JAX-RS Application?

Gestion de CORS avec JAX-RS à l'aide de Jersey

Pour faciliter le partage de ressources d'origine croisée (CORS) dans votre application JAX-RS basée sur Jersey, vous aurez besoin pour implémenter un ContainerResponseFilter. Voici l'implémentation appropriée pour les versions 1.x et 2.x de Jersey :

Jersey 2.x

import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.container.ContainerResponseFilter;
import javax.ws.rs.core.HttpHeaders;

@Provider
public class CORSFilter implements ContainerResponseFilter {

    @Override
    public void filter(ContainerRequestContext request, ContainerResponseContext response) {
        response.getHeaders().add(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "*");
        response.getHeaders().add(HttpHeaders.ACCESS_CONTROL_ALLOW_HEADERS,
                "CSRF-Token, X-Requested-By, Authorization, Content-Type");
        response.getHeaders().add(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true");
        response.getHeaders().add(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS,
                "GET, POST, PUT, DELETE, OPTIONS, HEAD");
    }
}
Copier après la connexion

Enregistrez ce filtre dans votre ResourceConfig ou manuellement via web.xml.

Jersey 1.x

import com.sun.jersey.spi.container.ContainerRequest;
import com.sun.jersey.spi.container.ContainerResponse;
import com.sun.jersey.spi.container.ContainerResponseFilter;

@Provider
public class CORSFilter implements ContainerResponseFilter {
    @Override
    public ContainerResponse filter(ContainerRequest request, ContainerResponse response) {
        response.getHttpHeaders().add("Access-Control-Allow-Origin", "*");
        response.getHttpHeaders().add("Access-Control-Allow-Headers",
                "CSRF-Token, X-Requested-By, Authorization, Content-Type");
        response.getHttpHeaders().add("Access-Control-Allow-Credentials", "true");
        response.getHttpHeaders().add("Access-Control-Allow-Methods",
                "GET, POST, PUT, DELETE, OPTIONS, HEAD");

        return response;
    }
}
Copier après la connexion

Configurez ce filtre via web.xml ou ResourceConfig.

Remarque : Assurez-vous que le filtre est appliqué de manière sélective aux ressources souhaitées pour éviter d'exposer des informations sensibles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal