ホームページ > Java > &#&チュートリアル > Jersey JAX-RSアプリケーションにCORSを実装するにはどうすればよいですか?

Jersey JAX-RSアプリケーションにCORSを実装するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-19 12:20:16
オリジナル
425 人が閲覧しました

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

Jersey を使用した JAX-RS での CORS の処理

Jersey ベースの JAX-RS アプリケーションで Cross-Origin Resource Sharing (CORS) を促進するには、次のものが必要です。 ContainerResponseFilter を実装します。 Jersey バージョン 1.x および 2.x の適切な実装は次のとおりです:

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");
    }
}
ログイン後にコピー

このフィルターを ResourceConfig に登録するか、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;
    }
}
ログイン後にコピー

このフィルターを次のように設定しますweb.xml または ResourceConfig.

注: 機密情報の公開を避けるために、フィルタが目的のリソースに選択的に適用されていることを確認してください。

以上がJersey JAX-RSアプリケーションにCORSを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート