Heim > Java > javaLernprogramm > Wie implementiert man CORS in JAX-RS-Anwendungen mit Jersey?

Wie implementiert man CORS in JAX-RS-Anwendungen mit Jersey?

Susan Sarandon
Freigeben: 2024-12-16 07:53:11
Original
292 Leute haben es durchsucht

How to Implement CORS in JAX-RS Applications Using Jersey?

Umgang mit CORS unter Verwendung von JAX-RS mit Jersey

Einführung

Cross-Origin-Ressource Sharing (CORS) ist ein Mechanismus, der ursprungsübergreifende HTTP-Anfragen ermöglicht. Es ermöglicht Webanwendungen, Anfragen an Remote-Server zu stellen, auch wenn die Ursprünge der beiden Server unterschiedlich sind. Bei der Implementierung von CORS ist es wichtig, sowohl einfache als auch Preflight-Anfragen zu berücksichtigen.

Lösung

Um CORS in JAX-RS mit Jersey zu verarbeiten, kann ein ContainerResponseFilter eingesetzt werden. Die folgenden Abschnitte enthalten Implementierungen für Jersey 1.x und 2.x.

Für Jersey 2.x:

import javax.ws.rs.container.ContainerResponseFilter;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.core.Response;
import java.io.IOException;

@Provider
public class CORSFilter implements ContainerResponseFilter {

    @Override
    public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
        responseContext.getHeaders().add("Access-Control-Allow-Origin", "*");
        responseContext.getHeaders().add("Access-Control-Allow-Headers", "CSRF-Token, X-Requested-By, Authorization, Content-Type");
        responseContext.getHeaders().add("Access-Control-Allow-Credentials", "true");
        responseContext.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD");
    }
}
Nach dem Login kopieren

Für Jersey 1. x:

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

@Provider
public class CORSFilter implements ContainerResponseFilter {

    @Override
    public ContainerResponse filter(ContainerRequest requestContext, ContainerResponse responseContext) {
        responseContext.getHttpHeaders().add("Access-Control-Allow-Origin", "*");
        responseContext.getHttpHeaders().add("Access-Control-Allow-Headers", "CSRF-Token, X-Requested-By, Authorization, Content-Type");
        responseContext.getHttpHeaders().add("Access-Control-Allow-Credentials", "true");
        responseContext.getHttpHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD");
        return responseContext;
    }
}
Nach dem Login kopieren

Durch die Implementierung eines dieser Filter können Sie CORS-Unterstützung in Ihrer JAX-RS-Webanwendung aktivieren Hergestellt aus Jersey.

Das obige ist der detaillierte Inhalt vonWie implementiert man CORS in JAX-RS-Anwendungen mit Jersey?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage