2017-01-12 19 views
0

サーブレットを作成しましたカスタムヘッダーの値を取得しようとしているフィルタ= samlRequest、rest client/postman chromeプラグインからsamlRequestの値を取得していますが、ajax呼び出しを使用しています私はsamlRequestキーとその値を提供していますが、javaでは "Access-Control-Request-Headers"でsamlRequestの値を取得する唯一のキーsamlRequestを取得しています。Javaでヘッダーの値を取得する方法

$.ajax({ 
      url: "http://indlin500.corp.test.com:31000/test/Portal/index.html", 
      type: "GET", 
      headers: { 'samlRequest': 'eJzVWVlz4roSfs6/oJhHJvECBkMRTsk2+2ow68stY8u2wBuWjQ2//srsyUlmJufOramTSjm41f '}, 
      beforeSend: function(xhr){xhr.setRequestHeader('samlRequest', 'eJzVWVlz4roSfs6/oJhHJvECBkMRTsk2+2ow68stY8u2wBuWjQ2//srsyUlmJufOramTSjm41f ');}, 
      success: function() { alert('Success!' + authHeader); } 
    }); 

FirewalledRequest [ [email protected] [OPTIONS /AmdocsOSS/Portal/index.html HTTP/1.1接続:キープアライブ アクセス制御リクエスト・メソッド:GET原産地:http://10.19.121.17:7001 のUser-Agent:Mozillaの/ 5.0(Windows NTの6.1; WOW64)のAppleWebKit/537.36 (KHTML、ヤモリなど)クローム/ 55.0.2883.87サファリ/ 537.36 アクセス制御リクエスト・ヘッダ:許可、samlrequest、 x-partnerkey受け入れ:/ DNT:1参考: http://10.19.121.17:7001/authentication-uxf-login-0.0.1-SNAPSHOT/customLoginPage.html-エンコーディングを受け入れる:、GZIPを収縮させる、SDCH言語を受け入れ:EN-US、エン;私は私が提供した値を持つヘッダにsamlRequestを取得していますクロム、残りのクライアントプラグインを使用して、Q = 0.8 ]]

FirewalledRequest [ [email protected] [GET /AmdocsOSS/Portal/index.html HTTP/1.1接続:キープアライブ のCache-Control:キャッシュなしsamlRequest:eJzVWVlz4roSfs6/oJhHJvECBkMRTsk2 + 2ow68stY8u2wBuWjQ2 // srsyUlmJufOramTSjm41fのUser-Agent:Mozillaの/ 5.0 する(Windows NT 6.1; WOW64)のAppleWebKit/537.36(ヤモリのようにKHTML、) クローム/ 55.0.2883.87サファリ/ 537.36ポストマン・トークン: ce7765d0-94b5-a1e1-d6ba -2abada3dfdd6 Accept:/ DNT:1 Accept-Encoding:gzip、deflate、sdch Accept-Language:en-US、en; q = 0.8

]]

+0

リクエストを 'HttpServletRequest'としてキャストする必要があり、その中に' getHeader'メソッドがあります。 https://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpServletRequest.html – neomega

答えて

0

ブラウザからのクロスオリジン・リクエストを行うと、ブラウザは、実際の要求の前にプリフライトリクエストを行います。意図されたGET要求とは異なり、オプション要求です。

実際のフィルタの前にCORSフィルタを追加してください。このフィルタは、任意のOPTIONS要求に対してOKと応答します。サンプルコードはここで見つけることができます:

https://amodernstory.com/2014/12/27/using-cors-headers-with-java-example/

方法によって、あなたは二回リクエストのヘッダを設定する必要はありません。 beforeSendブロックは、ajaxリクエストから削除できます。

関連する問題