2017-06-20 21 views
1

JAX-RSジャージー実装のRESTful Webサービスを実装しています。 私は複数のドメインが私のウェブサービスにアクセスすることを許可したいが、全部ではない。 現在CORSのドメインを1つだけ許可するコードを以下に書いています。 Jerseyの実装で特定の複数のドメインを許可する方法を教えてもらえますか?JersyでContainerResponseFilterを使用してCORSに複数のドメインを許可する方法。

public class CORSResponseFilter implements ContainerResponseFilter { 

    public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { 

     MultivaluedMap<String, Object> headers = responseContext.getHeaders(); 
     headers.add("Access-Control-Allow-Origin", "www.xxxxx.com"); 
     headers.add("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");   
     headers.add("Access-Control-Allow-Headers", "X-Requested-With, Content-Type, X-Codingpedia"); 
    } 
} 

答えて

1

プログラムでヘッダ値を設定します。あなたが許可したい起源の定義済みリストを持っています。フィルタメソッドでは、要求コンテキストからOriginヘッダーを取得します。これは要求の起源ドメインを持つでしょう。それを許可された起源のリストと照合してください。それがリストにある場合は、Originヘッダーのドメインを許可された発信元として配置します。それがそこにない場合は、起源が許されていないと言うForbiddenExceptionを投げてください。

関連する問題